сохранить объект, связанный с другим объектом автоматически - PullRequest
0 голосов
/ 28 марта 2010

Привет, у меня есть эти классы:

class Core < ActiveRecord::Base   

  belongs_to :resource, :polymorphic => true
  belongs_to :image, :class_name => 'Multimedia', :foreign_key => 'image_id'   
end


class Place < ActiveRecord::Base
  has_one :core, :as => :resource       
end

Если я попытаюсь, запустите это:

a = Place.find(5)
 a.name ="a"
 a.core.image_id = 24
 a.save

имя сохранено. image_id нет Я хочу сохранить автоматически все изменения в записях в связи с классом места в команде a.save. возможно?

спасибо

Ответы [ 2 ]

3 голосов
/ 29 марта 2010

Использование :autosave => true

См. Раздел под названием Пример «один ко многим» для ActiveRecord :: AutosaveAssociation .

Вы захотите что-то вроде:

class Place
  has_one :core, :as => :resource, :autosave => true
end

Отказ от ответственности:

:autosave => true должен использоваться на «родительском» объекте. Он отлично работает с has_one и has_many, но я столкнулся с большими трудностями при попытке использовать его на belongs_to. отношения.

0 голосов
/ 28 марта 2010

Я думаю, что вы можете использовать метод build_association для этого. Например,

a = Place.find(5)
a.name = "a"
a.build_core(:image_id => 24)
a.save

Но это может сработать, только если объект place был создан до этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...