Это лучше всего объяснить на примере.Следующее легко сделать:
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 инициализировались с помощью Bar без необходимости явно запускать строку 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>]
Возможно ли это?В идеале объект «по умолчанию» будет по-прежнему ассоциироваться таким же образом, как если бы я явно запускал строку 2а, чтобы он сохранялся при сохранении родительского объекта Foo.