2017-03-07 60 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