活动记录:从父对象创建记录

时间:2009-07-27 18:37:38

标签: ruby-on-rails ruby database activerecord

这就是我的意思:

工作有很多文档。我想创建一个doc,我可以这样做:

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

但是我想加强亲子关系,因为我已经知道了这份工作......这样的事情:

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

这样就可以忽略job_id字段,只有@job对象才有意义......

它有意义吗?

3 个答案:

答案 0 :(得分:4)

您应该可以使用build方法:

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

请参阅has_many api documentationRails Guide for associations以获取该系列中可用方法的列表。

答案 1 :(得分:4)

# initialize the object
@job.docs.build(params[:doc])
# create the object
@job.docs.create(params[:doc])

答案 2 :(得分:1)

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

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