2010-11-09 77 views
1

我正在從事To-Do應用程序以獲得Rails3和MongoDB的一些練習。無法在rails3中顯示引用的mongo文檔的字段

我有一個項目是一個標籤,一個標籤將有許多與它相關的項目。

我的問題:show.html.erb不想顯示標籤名稱。

# models/item.rb 
class Item 
include Mongoid::Document 
field :name 
field :completed, :type => Boolean 
referenced_in :tag 
end 

# models/tag.rb 
class Tag 
include Mongoid::Document 
field :name 
key :name 
references_many :items 
end 

# items_controller.rb 
def show 
    @item = Item.find(params[:id]) 

    respond_to do |format| 
     format.html # show.html.erb 
     format.xml { render :xml => @item } 
    end 
end 

<!-- items/show.html.erb --> 
<p>Name: <%= @item.name %></p> 
<p>Completed: <%= @item.completed %></p> 
<p>Tag: <%= @item.tag.name %></p> 

顯示文件的第三行或標記行是什麼給我的問題。下面的錯誤是:未找到類標籤與 ID(S)4cd75765f5c4932f19000002

文件。

,如果我取代以下那麼該行會顯示正確的標籤ID,這個行(但是我想很明顯的標記名稱)

<p>Tag: <%= @item.tag_id %></p> 
+0

你從@ item.tag得到了什麼? – 2010-11-09 21:07:32

+0

與@ item.tag.name – 2010-11-10 02:06:45

回答

1

標籤類有兩個屬性命名爲「名」 。 嘗試刪除key :name

+1

相同的東西你是對的,但我認爲是錯誤的原因。刪除工作的關鍵。認爲它的工作原理是因爲使用了關鍵屬性,因此名稱用於標識地址中的標記。所以它正在使用標籤ID查找標籤名稱。 – 2010-11-10 02:42:52

+0

使用密鑰後,我意識到你更好地回答了你自己的問題。您正在引用的標記已使用ObjectId作爲關鍵字寫入數據庫。我確信你已經發現,一旦你用'key:name'寫了新的記錄到數據庫中,你就得到了預期的結果。 – 2010-12-15 01:21:48

相關問題