访问表中输出的链接模型属性

时间:2012-11-29 19:46:35

标签: html ruby-on-rails model

这有助于在单个“项目”展示页面上显示 Accessing an attribute of a linked model in Rails

但是我在为'所有项目表'

做同样的事情时遇到了麻烦
...
<% @items.each do |item| %>
...
<td><%= item.room.name %></td>
...

显然,一个房间有很多物品。

只有这样才有效:

<td><%= item.room_id %></td>

我似乎无法在那里使用它,给出:

undefined method `name' for nil:NilClass

1 个答案:

答案 0 :(得分:3)

查看Rails的Delegate模块:

class Item < ActiveRecord::Base
  # ...
  delegate :name, :to => :room, :allow_nil => true, :prefix => :room
end

这会将实例方法room_name添加到Item,这会更优雅地失败(如果没有空间则返回nil,而不是NilClass错误)。