2013-06-24 30 views
0

我想在我的視圖對象中顯示來自兩個ActiveRecord模型的值。這些模型相關的一個Item可以有很多ItemTags。我的代碼被描述爲如下:Ruby on Rails多個ActiveRecord項目/視圖狀態

模型#1 - item_tags.rb

class ItemTags < ActiveRecord::Base 
    attr_accessible :ItemID, :tag 
    belongs_to :item 
end 

型號#2 - item.rb的

class Item < ActiveRecord::Base 
    attr_accessible :title, :visible 

    has_many :item_tags 

end 

我有具有一控制器index定義爲:

def index 
@item = Item.all 
logger.debug "#{@item.inspect}" 

end 

當我在控制檯中查看我的物品輸出時,一切看起來都正常。加載頁面,調試信息顯示我有項目

#<Item id: 1 ... (etc) > 

調試信息還告訴我,對於每個項目,它看起來好像我執行ItemTags Load。這一切似乎對我有意義,但出於某種原因,我不能或可能沒有嘗試過在我的視圖頁上訪問item_tags的正確語法。我想了解以下內容:

  1. 在控制檯中,我怎麼能看到每各item_tag正在加載哪些項目?再次,我可以看到ItemTags Load正在每個項目上運行,但我沒有看到控制檯中顯示任何結果。

  2. 什麼是適當的語法來引用我的標籤爲我的看法中的每個項目?有些項目沒有標籤。

在此先感謝您。

+0

請添加您的看法。 – wintermeyer

回答

0

如果您真的在ItemTag模型中使用ItemID(如代碼所示),答案非常簡單:使用item_id

在控制器中我會用複數@items(不是錯誤,但讓生活更簡單):

Item.first 

你:

def index 
    @items = Item.all 
    logger.debug "#{@items.inspect}" 
end 

在控制檯中,您可以通過訪問第一Item可以通過以下方式訪問全部item_tags

Item.first.item_tags 

有關更多信息,請參閱http://xyzpub.com/en/ruby-on-rails/3.2/activerecord_has_many.html

+0

感謝您的信息和資源,他們非常有幫助。我能解決我的問題! –