2017-03-07 112 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") 

將不起作用:

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

OK,所以只要@user是一個合法的對象,則兩種方法是完全一樣的嗎?這就是我所期望的,只是想確定一下。謝謝! – PDD