Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 根据表| Ruby on Rails中的类别值显示产品_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 根据表| Ruby on Rails中的类别值显示产品

Ruby on rails 根据表| Ruby on Rails中的类别值显示产品,ruby-on-rails,ruby,Ruby On Rails,Ruby,在我的应用程序中,我将“产品”替换为“包装”。我想知道是否可以根据“packs”表中的category_id字符串值显示某些产品,而不显示category表。(仅使用packs表来组织packs索引上的每个包。一个包只能属于一个类别。 我目前正试图通过PacksController中的以下代码执行此操作: def index @title = 'Products'; @packs = Pack.includes(:category_id).group_by { |pack| pack.c

在我的应用程序中,我将“产品”替换为“包装”。我想知道是否可以根据“packs”表中的category_id字符串值显示某些产品,而不显示category表。(仅使用packs表来组织packs索引上的每个包。一个包只能属于一个类别。

我目前正试图通过PacksController中的以下代码执行此操作:

def index
  @title = 'Products';
  @packs = Pack.includes(:category_id).group_by { |pack| pack.category_id }
end
如果包的
:category_id
do
相同,则尝试显示包。erb:

<% @packs.select { |pack| pack.category_id == 'sample-pack' }.each do %>
  <div class="col-md-4 pack-pad">
    <%= link_to pack_path(pack) do %>
      <%= image_tag("#{pack.art_link}", :alt => "Sample pack cover, album art", :width => 333, :height => 333, class: "feat-img") %>
    <% end %>
  </div>
<% end %>
这是我在db中植入的“机密更改:

theHunt = Pack.create!(
  title: "The Hunt",
  description: "<description>",
  price: "25",
  pack_class: "Action",
  pack_type: "Paid",
  category_id: "sample-pack",
  sku: "samplePack1",
  art_link: "<path>",
  download_url: "<link>",
theHunt=Pack.create(
标题:“狩猎”,
说明:“,
价格:“25”,
背包类:“行动”,
包装类型:“已付”,
类别标识:“样品包”,
sku:“samplePack1”,
艺术链接:“,
下载url:“”,

)

只需删除
查询中的includes(:category\u id)
,它应该可以正常工作。您正试图加载一个名为
category\u id
的关联,但它不存在(Rails中没有这样的关联的惯例,它应该是外键)

在以下观点中:

<% @packs['sample-pack'].each do |pack| %>
  <div class="col-md-4 pack-pad">
    <%= link_to pack_path(pack) do %>
      <%= image_tag("#{pack.art_link}", :alt => "Sample pack cover, album art", :width => 333, :height => 333, class: "feat-img") %>
    <% end %>
  </div>
<% end %>

“样本包封面,专辑艺术”,宽度=>333,高度=>333,类别:“壮举img”)%%>

您可能需要处理一些例外情况,例如没有名为“样本包”的类别id。我将其留给您处理。

pack在db中是否有类别id字段?@hashrocket是的,我已使用db表更新了我的问题。您有类别db吗?使用pack.includes(:category)而不是pack.includes(:category_id)@hashrocket否,我实际上想知道是否有办法通过简单地检测单个包的字符串并显示它是否与包索引中
do
语句上的字符串匹配来实现这一点。
@packs = Pack.all.group_by(&:category_id)
<% @packs['sample-pack'].each do |pack| %>
  <div class="col-md-4 pack-pad">
    <%= link_to pack_path(pack) do %>
      <%= image_tag("#{pack.art_link}", :alt => "Sample pack cover, album art", :width => 333, :height => 333, class: "feat-img") %>
    <% end %>
  </div>
<% end %>