Rails 3.2是否有办法自动创建一个空子(嵌套)记录?

时间:2014-01-25 01:48:45

标签: ruby-on-rails nested-attributes

我的模型Foo has_one :bar和Bar belongs_to :foo以及Foo accepts_nested_attributes_for :bar

当我创建一个Foo实例(以编程方式,而不是通过表单)时,我想自动创建一个Bar的空白子实例。

AFAIK我必须明确地这样做:

f = Foo.new(bar_attributes: {})
... do stuff ...
f.save

在Foo模型中是否还有一个声明,它不仅要接受bar的嵌套属性,还要创建一个无论什么?

1 个答案:

答案 0 :(得分:2)

我只想在foo.rb中使用回调

before_validation :init_foo, on: [ :create ]

def init_foo
   self.build_bar
end

每次创建新的foo对象时,这将创建一个链接到foo的新bar实例。