автосохранение ассоциации has_one created_to =› true не сохраняется

у меня две модели

Board
has_one    :pref, :autosave => true,  :dependent => :destroy

Pref

belongs_to :board

Объект pref имеет значения по умолчанию, установленные в базе данных, поэтому для создания объекта при создании доски не требуется никакой информации. Идентификатор платы находится в таблице pref.

Поскольку :autosave=> true, я думал, что когда я создаю и сохраняю новый объект Board, предварительно созданный объект будет создан и сохранен автоматически.

Это не работает таким образом, поэтому я, должно быть, неправильно понимаю.

Есть ли способ автосохранения объекта pref при сохранении доски?

заранее спасибо


person chell    schedule 23.03.2011    source источник


Ответы (1)


autosave => true не должен создавать для вас элемент. В документах говорится:

Если true, всегда сохранять связанный объект или уничтожать его, если он помечен для уничтожения, при сохранении родительского объекта. Если false, никогда не сохранять и не уничтожать связанный объект.

Вы можете использовать обратный вызов для создания объекта pref при создании нового board.

Что-то вроде:

after_create :create_pref

def create_pref
  pref.create!
end
person polarblau    schedule 23.03.2011