has_one принадлежит_в ассоциации автосохранение => true не сохраняется - PullRequest
3 голосов
/ 23 марта 2011

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

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

Pref

belongs_to :board

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

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

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

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

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

1 Ответ

3 голосов
/ 23 марта 2011

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

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

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

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

after_create :create_pref

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