【问题标题】:Difference between build and "assign" for a child association?子关联的构建和“分配”之间的区别?
【发布时间】:2017-03-07 00:50:49
【问题描述】:

我很好奇使用“构建”或直接分配一个孩子进行关联之间有什么区别?

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

方法一:

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

方法2:

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

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

【问题讨论】:

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


    【解决方案1】:

    如果Organization 具有User,则直接分配关联需要@user 成为User 对象才能工作,否则很容易引发错误。 build 处理关联并自动设置外键。例如

    有效:

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

    有效:

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

    不起作用:

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

    【讨论】:

    • OK,那么只要@user 是合法对象,那么这两种方式是完全一样的吗?这就是我所期望的,只是想确定一下。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2022-10-04
    • 1970-01-01
    • 1970-01-01
    • 2015-05-08
    • 2018-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多