У меня есть связь с идентификатором, но внешний ключ не устанавливается.Rails обновляет внешний ключ с идентификатором ассоциации
Некоторые настройки:
Foo has_many :bars
Bar belongs_to :foo
foo = Foo.new.save
bar = Bar.new(foo: foo)
Выход:
bar.foo = foo
bar.foo.id = 1
bar.foo_id = nil # Why is this nil!?
Кроме назначения bar.foo_id = 1
, есть способ, чтобы обновить соответствующий внешний ключ, так bar.foo_id == 1
без сохранения?
Должен быть какой-то метод #update_foreign_keys
, или #update_associations
, так?
Я бегу Rails 4.2 с Рубином 2.1.2
Почему бы вам просто не сохранить 'bar', если вы установили его атрибут' foo' в 'foo'? Итак, что-то вроде этого: 'bar.foo = foo; bar.save; ставит bar.foo_id'. – newmediafreak
try 'foo = Foo.build'' bar = foo.bars.create (foo: foo) ' – Sontya
спасибо за ввод, мне нужно сделать это без сохранения. –