У меня странная проблема. я новичок в mongoid, поэтому у меня возникают проблемы с определением, виноват ли я или mongoid ... представление моего кода является, пожалуй, лучшим объяснением (за исключением полей / проверок / и т. д.)
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 => 'user@domain.com',
: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.profile
... я могу просматривать роли с помощью user.roles
, но я НЕ МОГУТ просматривать их с помощью User.first.roles
.
еще одна странная вещь: user.roles.count
И User.first.roles.count
оба возвращают 0, хотя при просмотре user.roles
возвращается [#<Role _id: 4d8c0173e1607cdeae00002c, name: "Administrator", user_ids: [BSON::ObjectId('4d8c0173e1607cdeae00002a')]>]
. (User.first.roles
возвращает пустой массив)
это похоже на ошибку.