這可以通過示例來最好地解釋。以下是簡單的事:用has_many關聯預先填充創建Rails模型的實例
class Foo < ActiveRecord::Base
has_many :bars
end
1a>> foo = Foo.new
=> #<Foo id: nil>
2a>> foo.bars << Bar.new
=> [#<Bar id: nil, foo_id: nil>]
3a>> foo.bars
=> [#<Bar id: nil, foo_id: nil>]
不過,我想所有的Foo對象有酒吧初始化,而無需顯式運行線路2:
class Foo < ActiveRecord::Base
has_many :bars
# [...] Some code here
end
1b>> foo = Foo.new
=> #<Foo id: nil>
2b>> foo.bars
=> [#<Bar id: nil, foo_id: nil>]
這可能嗎?理想情況下,'default'對象仍將以與我明確運行第2a行相同的方式關聯,以便在保存父Foo對象時保存它。