我想回答我做错的事。因此,我尝试在类别页面上列出属于该类别的所有产品。这是代码:
<% @product = Product.all%>
<% @product.where("category_id = ?", params[:@category_id]).each do |product| %>
<%= product.title %>
<%end%>
但我的页面上没有任何内容。那么,有什么不对?
答案 0 :(得分:0)
您可能希望从:category_id
读取params
,而不是:@category_id
(因此它应该是params[:category_id]
,而不是params[:@category_id]
。
答案 1 :(得分:0)
您的代码存在很多问题。
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 %>