在View中显示Belongs_To关系

时间:2012-01-12 22:34:57

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1

我有一个涉及belongs_to关系的问题。目前,我有一个属于名称的物品。此名称的标题是项目的标题。在视图中,它显示

<% = item.name.title %>

一直提出错误信息“标题方法”不存在,尽管它不是一种方法。建议?

3 个答案:

答案 0 :(得分:0)

属性是通过ActiveRecord :: Base汇集并作为方法访问的方法。您可以看到代码here

我猜你的项目没有与之关联的名称,但它仍然会有名称方法。如果你输出item.name,你会得到什么?

答案 1 :(得分:0)

如果您的标题对象没有附加名称对象,则会出错。解决此问题的一种方法是使用此方法:

<% if item.name %>
  <%= item.name.title %>
<% end %>

答案 2 :(得分:0)

我担心这个问题比你想象的要深得多。

  

属于名称的项目

好的,你肯定意味着Item has_one :nameName belongs_to :item 你不能只在表:name中添加一列items吗?

  

此名称的标题是项目的标题

Oulala。你的意思是item.title == item.name.title

  

在视图中,它显示&lt;%= item.name.title%&gt;一直出现错误

确定。它在视图中不显示任何内容。

  

“标题方法”不存在的错误消息,尽管事实上它不是方法

如果它不是一种方法,它是什么?
怎么说错误信息呢?