我有一個奇怪的問題。我是新來mongoid,所以我無法確定它是否是我或mongoid過錯......我展示的代碼也許是最好的解釋(減去場/驗證的/ etc。)mongoid references_and_referenced_in_many
class User
include Mongoid::Document
embeds_one :profile, :class_name => "UserProfile"
references_and_referenced_in_many :roles
end
class UserProfile
include Mongoid::Document
embedded_in :user
end
class Role
include Mongoid::Document
references_and_referenced_in_many :users
end
與以下關聯,當我創建這些對象,像這樣的情況下...
user = User.new :username => 'username',
:email => '[email protected]',
:password => 'password'
user.build_profile :first_name => 'John',
:last_name => 'Doe',
:birthday => Date.new(1980, 1, 1)
user.roles << Role.new(:name => 'Administrator')
user.save
...我可以User.first
或user
查看此用戶...我可以User.first.profile
和查看個人資料
...我可以查看角色user.roles
但我不能用User.first.roles
查看它們。
另一個奇怪的是user.roles.count
AND User.first.roles.count
都返回0,即使當我查看user.roles
,它返回[#<Role _id: 4d8c0173e1607cdeae00002c, name: "Administrator", user_ids: [BSON::ObjectId('4d8c0173e1607cdeae00002a')]>]
。 (User.first.roles
返回一個空陣列)
這看起來像一個錯誤。
嗯..還是不節能。也user.roles是一個數組,所以沒有保存方法。 – brewster 2011-03-25 08:19:53
自動保存應該已經工作了,反正我編輯了上面的答案..希望它可以幫助 – zoras 2011-03-25 09:31:03
是的,這是有效的,但我好奇爲什麼自動保存不是。我使用rc7,所以我升高到rc8,但具有相同的結果...也許自動保存不能用於references_and_referenced_in_many,只是references_many&references_one獨立? – brewster 2011-03-25 18:23:28