2017-03-07 5 views
0

"ビルド"を使用するか、または関連付けのために直接的に子供を割り当てることの違いは何か不思議ですか?子アソシエーションのビルドと "割り当て"の違いは?

は、私はすでに@userインスタンスを持っていると仮定し、私は組織に子の関連付けを作成したい:

アプローチ1:

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

アプローチ2:

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

どちらも同じことですか?

答えて

0

OrganizationUserを持っている場合は、関連付けを割り当てることで直接動作するようにUser対象となる@userを必要とするか、またはそうでなければ、エラーをスローになりやすいのです。 buildは関連付けを処理し、外部キーを自動的に設定します。例えば

は動作します:

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

は動作します:

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

は動作しません:そのように限り@userが正当なオブジェクトであるよう

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

OK、 2つのアプローチは完全に同じですか?それは私が期待するものであり、確かにしたいだけです。ありがとう! – PDD

関連する問題