我有两个型号Product和Category,它们分别有has_many和belongs_to关联。现在,我想要做的是当我点击特定类别时,我希望列出该类别的所有产品。我该怎么做
这是我的观点
<p><%=link_to @product.category.name, show_by_category_products_path(@product.category.id)%> <%= @product.name%> <%=@product.category.id%><p>
和控制器中的方法
def show_by_category
@products = Product.where("category_id=?", :id)
end
谢谢! (我知道它简单的东西,但有时你会失明,看不到直截了当的方式,所以你必须寻求其他人的帮助)
EDIT 好吧也许我想办法解决这个问题..但我不确定它是否以正确的方式完成
现在我的视图和模型看起来像这样
<p><%=link_to @product.category.name, show_by_category_product_path(id: @product.id)%> <%= @product.name%>
def show_by_category
@prod = Product.find(params[:id])
@products = Product.where('category_id=?', @prod.category_id)
end
告诉我这是否正确?
答案 0 :(得分:1)
我建议你至少阅读Getting Started指南,因为你做错了。
答案 1 :(得分:1)
您的查找应该更像Category.find(params[:id]).products
。但请尝试遵循RESTful路由原则,并嵌套您的资源。 Rails会为你做更多的事情。