Rails初学者在这里 . 我想显示属于特定类别的所有产品的列表 . 我想保持简单,所以每个产品只有一个类别 . 当我显示类别时,产品就在那里,但它们出现在一个数组中,如下所示:
名称:焊接类别ID:2产品:[#<产品编号:5, Headers :“Hacksaw”,描述:“Finetooth Hacksaw”,image_url:>>“hacksaw.jpg”,价格:#,created_at:“2012- 07-14 >> 22:34:07“,updated_at:”2012-07-17 22:18:14“,category_id:2,category_name:nil>,#<产品编号:8,>> Headers :”火炬“ ,简介:“焊枪”,image_url:“torch.jpg”,价格:>>#,created_at:“2012-07-15 08:40:05”,>> updated_at:“2012-07-15 08:40 :05“,category_id:2,category_name:nil>]
这是categories / show.html.erb:
<p>
<b>Products:</b>
<%= @category.products %></p>
</p>
和类别控制器:
def show
@category = Category.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.json { render json: @category }
end
end
我想要做的只是显示产品名称的列表,但是当我在show.html.erb中尝试这个时:
<p>
<b>Products:</b>
<%= @category.product.name %></p>
</p>
...我收到以下错误:
#<Category:0x007ff03cd59e98>的未定义方法`product'
我无法弄清楚出了什么问题 .
2 回答
你需要遍历
@category.products
.@category.products
将为您提供属于@category
的所有Product
模型 .@category
(Category
,其中包含Product
的集合)将不会响应product
- 它不知道那是什么 . 它只知道它有一堆Product
.这与我一直在做的类似 . 这可能有助于比较 .
show.html.erb
调节器