0

这有助于在单个“项目”显示页面上显示 访问 Rails 中链接模型的属性

但是我在为“所有项目表”做同样的事情时遇到了麻烦

...
<% @items.each do |item| %>
...
<td><%= item.room.name %></td>
...

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

只有这个有效:

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

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

undefined method `name' for nil:NilClass
4

1 回答 1

3

看看 Rails 的Delegate模块:

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

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

于 2012-11-29T19:55:16.907 回答