2017-03-07 1 views
0

"빌드"를 사용하거나 직접 연결을 위해 자식을 할당하는 것의 차이점이 궁금합니다. 빌드와 자식 연결에 대한 "할당"의 차이점은 무엇입니까?

내가 이미 @user 인스턴스를 가지고 가정, 난 그냥 조직에 자식 협회 만들려면 :

접근 1 :

@organization = Organization.new 
@organization.build_user(@user.attributes) 

접근법 2 :

@organization = Organization.new 
@organization.user = @user 

둘 다 같은 일을합니다.

답변

0

Organization 다음 연결을 할당하는 User가있는 경우 직접 작업하는 User 객체가 될 @user이 필요 그렇지 않으면 오류가 던지는 경향이있다. build은 연관을 처리하고 외래 키를 자동으로 설정합니다. 예 :

작동합니다 :

@organization.build_user({username: "User"}) 

가 작동합니다

@organization.user = User.new(username: "User") 

작동하지 않습니다 :

@organization.user = {username: "User"} 
+0

확인을 너무 오래 @user는 다음 합법적 인 객체이기 때문에 두 가지 접근법은 완전히 동일합니까? 그것이 내가 기대하는 것입니다. 단지 확신하고 싶습니다. 감사! – PDD

관련 문제