Rails:如何访问视图中的belongs_to字段?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rails:如何访问视图中的belongs_to字段?相关的知识,希望对你有一定的参考价值。
鉴于下面的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
答案
您需要指定要显示的categories
表的哪一列。例如,一个名为name
的列:
<% @product.each do |p| %>
<%= p.category.name %>
<% end %>
否则它将返回对象...换句话说,所有列{id: 1, name: 'blabla', etc }
也,
class Category < ActiveRecord::Base
has_many :products
end
另一答案
这个定义:
belongs_to :category
只需为Product Model的每个对象定义一个表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
以上是关于Rails:如何访问视图中的belongs_to字段?的主要内容,如果未能解决你的问题,请参考以下文章
Rails 使用同一命名空间中的模型作为 belongs_to 引用,如何从外部引用模型
以编程方式获取 Rails 4 中的 belongs_to 关联的类