鉴于下面的MVC结构,我如何访问:category
?我将其添加到attr_accessible
列表并重新启动服务器,但调用p.category
仍然不返回任何内容。我相信你的Rails专家会知道发生了什么。提前谢谢!
模型
class Product < ActiveRecord::Base
belongs_to :category
belongs_to :frame
belongs_to :style
belongs_to :lenses
attr_accessible :description, :price
end
查看
<% @product.each do |p| %>
<%= p.category %>
<% end %>
控制器
def sunglass
@product = Product.all
end
答案 0 :(得分:4)
您需要指定要显示的categories
表的哪一列。例如,名为name
的列:
<% @product.each do |p| %>
<%= p.category.name %>
<% end %>
否则它将返回对象...换句话说,所有列{id: 1, name: 'blabla', etc }
另外,
class Category < ActiveRecord::Base
has_many :products
end
答案 1 :(得分:1)
这个定义:
belongs_to :category
为Product Model的每个对象定义一个表Category的引用点。示例您的类别模型有一些列,如:name,type,...
一个产品属于一个类别,而Category有许多产品。现在,您如何找到产品的类别名称?你不能这样写:
product.category # this is just reference to Category table
你应该这样写:
product.category.name # this will get category's name which product belongs to
如果您想获得类别类型(示例):
product.category.type