如何显示属于该类别的项目

时间:2015-12-06 19:19:42

标签: ruby-on-rails ruby ruby-on-rails-4

我想回答我做错的事。因此,我尝试在类别页面上列出属于该类别的所有产品。这是代码:

    <% @product = Product.all%>
    <% @product.where("category_id = ?", params[:@category_id]).each do |product| %>
      <%= product.title %>
<%end%>

但我的页面上没有任何内容。那么,有什么不对?

2 个答案:

答案 0 :(得分:0)

您可能希望从:category_id读取params,而不是:@category_id(因此它应该是params[:category_id],而不是params[:@category_id]

答案 1 :(得分:0)

您的代码存在很多问题。

1)Read guides for starters

2)你必须在控制器的动作中定义一个实例变量,然后在视图中只需在你的循环中使用这个变量。我假设,它是您查看的索引操作。如果是的话,

def index
  # this variable will be used in view
  @products = Product.where(category_id: params[:id])
end

然后在视图中

@products.where(category_id: params[:category_id]).each..

另外,请确保您的参数符合预期(如果不确定则检查参数)。

3)您不执行代码,因此不输出任何内容。

要确保评估内容,请使用-=。你没有使用这些。这是它应该是什么样子:

# notice dash at the beginning of the line
<%- @products.each do |product| %>
  <%= product.category_id %>
<% end %>