2012-11-29 19 views
0

這有助於爲一個單獨的「項目」顯示頁面上顯示 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

'item.room'是'nil'。你有這個項目的空間嗎? –

+0

@ D3mon-1stVFW那麼我該怎麼做呢? –

+0

@ D3mon-1stVFW並非表中的所有物品都有房間,這是我的問題嗎? –

回答

3

看一看Rails的Delegate模塊:

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

這會將實例方法room_name添加到Item,這將會失敗更多gr (如果沒有空間,則返回nil,而不是NilClass錯誤)。

+0

是的,謝謝你的工作。無論如何,我已經計劃好每一件東西都在一個房間裏,但還沒有做過驗證!謝謝。 (也感謝@ D3mon-1stVFW) –

相關問題