6

鉴于下面的 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
4

2 回答 2

6

您需要指定categories要显示的表格的哪一列。例如,名为 的列name

<% @product.each do |p| %>
 <%= p.category.name %>
<% end %>

否则它将返回对象...换句话说,所有列{id: 1, name: 'blabla', etc }

还,

class Category < ActiveRecord::Base
   has_many :products
end
于 2012-11-21T14:17:37.247 回答
2

这个定义:

belongs_to :category

只需为 Product 模型的每个对象定义一个表 Category 的引用点。例如,您的类别模型有一些列,例如:名称、类型、...

一个产品属于一个类别,而 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 
于 2012-11-21T14:34:55.233 回答