2016-11-28 1 views
0

난 내가 새 사용자다른 레코드에 레코드를 어떻게 포함합니까?

class User 
    include Mongoid::Document 
    field :first_name, type: String 
    field :last_name, type: String 
    embeds_one :manager, class_name: "Manager" 
end 

class Manager 
    include Mongoid::Document 
    field :first_name, type: String 
    field :last_name, type: String 
    embedded_in :users, class_name: "User" 
end 

## ------------------------------------------------------------ 

User.create!(
    first_name: "First1" 
    last_name: "Last1" 
) 

내부에 포함 된 새 관리자를 만드는 방법을 알아 내려고 노력하고 있어요하지만 어떻게 내가 임베디드 이후 새 관리자를 만들 마십시오 mongoid 문서를 통해하고 있어요?

답변

0

여기에 embeds_one 연결을 설정 하시겠습니까?

class User 
    include Mongoid::Document 
    field :first_name, type: String 
    field :last_name, type: String 
    belongs_to :manager, class_name: 'User' 
end 

당신이 할 수있는이 방법 : 나에게 UserManager 그래서 동일한 속성과를 갖고있는 것 같다 있기 때문에이 사용자의 관리자가 누구인지 식별하기 위해 추가 열 manager_id와 함께 하나의 클래스 User에 포함 할 수 있습니다 : 당신이 여기에 embeds_one 관계를 원하지 않는

manager = User.create!(first_name: 'First', last_name: 'Last') 
user = User.create!(first_name: 'First', last_name: 'Last', manager: manager) 

또 다른 가능한 이유는 관리자가 1 명 이상의 사용자를 관리 할 수 ​​있다는 것이다. 따라서 동일한 관리자 문서를 다른 User 문서에 포함시킬 수 없습니다. 내가 틀렸다면 나를 바로 잡아주세요.

업데이트 (현재의 관계와)

일반적으로,이 포함 된 만들 수있는 레코드를 다음과 같이

user = User.new(first_name: 'First', last_name: 'Last') 
user.manager = Manager.new(first_name: 'First', last_name: 'Last') 
user.save! 
관련 문제