我的模型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的嵌套属性,还要创建一个无论什么?
答案 0 :(得分:2)
我只想在foo.rb中使用回调
before_validation :init_foo, on: [ :create ]
def init_foo
self.build_bar
end
每次创建新的foo对象时,这将创建一个链接到foo的新bar实例。