2011-12-11 2 views

ответ

4

Идентификатор установлен для записи только после его сохранения в базе данных. Таким образом, вы можете добавить простой обратный вызов здесь

after_create (or after_save - whatever you need) do |record| 
    book = Book.find_by_author_id(xyz) 
    book.update_attributes :author_id => record.id 
end 
0

При создании новой записи, нет ID не установлен еще, так как объект не находится в базе данных еще. Вы можете протестировать его с помощью метода экземпляра new_record?().

2

, если self является new_record? (не сохраняется в БД), вы не сможете назначить id, как это, так как еще нет идентификатора. Однако должно быть возможно установить book.author на self.

Если это не ваше дело, вы должны подумать о том, чтобы указать свой вопрос.

Смежные вопросы