构建和"分配"之间的差异为儿童协会?

时间:2017-03-07 00:50:50

标签: ruby-on-rails activerecord build associations assign

我很好奇使用" build"或者只是直接为孩子分配协会?

假设我已经有一个@user实例,我只想创建一个组织的子关联:

方法1:

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

方法2:

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

两者都做同样的事,对吧?

1 个答案:

答案 0 :(得分:0)

如果OrganizationUser,则直接指定关联需要@user成为User对象才能正常工作,否则很容易引发错误。 build处理关联并自动设置外键。 e.g。

会工作:

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

会工作:

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

无效:

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