【问题标题】:active record: create record from parent object活动记录:从父对象创建记录
【发布时间】:2009-07-27 18:37:37
【问题描述】:

这就是我的意思:

job 有很多文档。我想创建一个文档,我可以:

@doc = Doc.new(params[:doc])

但我想强制执行父子关系,因为我已经知道这份工作.. 像这样:

@job.docs.new(params[:doc])

这样job_id 字段就会被忽略,只有@job 对象很重要...

这有意义吗?

【问题讨论】:

    标签: ruby-on-rails ruby database activerecord


    【解决方案1】:

    您应该可以使用build 方法:

    @job.docs.build(params[:doc])
    

    请参阅has_many api documentationRails Guide for associations 了解集合中可用的方法列表。

    【讨论】:

      【解决方案2】:
      # initialize the object
      @job.docs.build(params[:doc])
      # create the object
      @job.docs.create(params[:doc])
      

      【讨论】:

      • 需要明确的是,不同之处在于“create”继续并将新对象插入到数据库中。
      【解决方案3】:

      只要你在模型中指定了关系,Job就会automagically have a build method:

      @job.docs.build(params[:doc])
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-06-23
        • 1970-01-01
        • 2018-06-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-07
        • 2020-12-12
        相关资源
        最近更新 更多