2013-05-22 56 views
0

我正在構建Rails應用程序,並且在實現團隊和用戶多對多關係時遇到了一些麻煩,用戶可以通過這種方式部分多個團隊和一個團隊顯然可以有多個用戶。這些是我目前的車型:在Mongoid中實現多對多關係時遇到問題

class User 
    include Mongoid::Document 
    has_and_belongs_to_many :teams, :class_name => 'Team', :inverse_of => :member 
end 

class Team 
    include Mongoid::Document 
    has_and_belongs_to_many :members, :class_name => 'User', :inverse_of => :teams 
end 

我的問題是,當我測試這個Rails的控制檯上,它只是不有道理:

2.0.0-p0 :002 > u = User.first 
=> #<User _id: 519c692e38508ce07e000001, team_ids: ["519c6f1338508c9431000001"]> 
2.0.0-p0 :005 > t = u.teams.new 
=> #<Team _id: 519c6fcd38508c08e0000001, member_ids: ["519c692e38508ce07e000001"]> 
2.0.0-p0 :006 > u.teams 
=> [#<Team _id: 519c6fcd38508c08e0000001, member_ids: ["519c692e38508ce07e000001"]>] 
2.0.0-p0 :008 > t.members 
=> [] 

爲什麼沒有團隊成員關係向我顯示用戶,但數組有它的ID?它應該包含用戶對象,因爲我使用了u.teams.new。我嘗試了不同的東西,但都產生了類似的結果(例如用戶沒有列出任何團隊,但在陣列上有ID)。我怎樣才能解決這個問題?謝謝!

PD:我運行邊緣Mongoid(從Git的主站),導軌(4.0.0.rc1)和Ruby(2.0.0-P0)

+0

不應該是:inverse_of =>:用戶模型中的成員而不是成員? – 2013-05-22 07:55:47

+0

哎呀沒有注意到。雖然它仍然是同樣的問題,但它沒有改變任何東西 – pmerino

回答

0

這不是Mongoid故障實際。這是因爲我的開發虛擬機安裝了MongoDB 1.4(不要問爲什麼,我不知道)。升級到最新版本,現在它是完美的!