이상한 문제가 있습니다. 나는 mongoid에 새로운 오전, 그래서 난 내 코드는 아마도 최선의 설명이다 제시 ... 고장 날 또는 mongoid 인 경우 문제가 결정을 가진 (마이너스 필드/검증/등.)을 가진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.first.profile
및으로 프로파일을 볼 수 ...
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.roles
와 역할을 볼 수 있지만 난 User.first.roles
그들을 볼 수 없습니다 수 있습니다.
다른 이상한 것은 user.roles.count
이고 User.first.roles.count
은 모두 user.roles
을 볼 때도 [#<Role _id: 4d8c0173e1607cdeae00002c, name: "Administrator", user_ids: [BSON::ObjectId('4d8c0173e1607cdeae00002a')]>]
을 표시하지만 모두 0을 반환합니다. (User.first.roles
는 빈 배열을 반환합니다)
이것은 버그 같아 보입니다.
흠 (이것은 단지 references_many 및 references_one 적용) => 사실 옵션은 매크로 에 제공해야합니다 자동 저장 : 위해 되돌려을이 기능을 얻을 수 있습니다. 또한 user.roles는 배열이므로 save 메소드가 없습니다. – brewster
자동 저장 기능이 작동해야합니다. 어쨌든 위의 답변을 편집했습니다. 도움이 되었으면 좋겠어요. – zoras
그래, 작동하지만, 자동 저장하지 않는 이유가 궁금합니다. 나는 rc7을 사용했기 때문에 rc8에 올랐지 만 동일한 결과로 ... 자동 저장은 references_and_referenced_in_many와 함께 사용할 수 없으며 references_many & references_one은 독립적으로 사용할 수 있습니까? – brewster