Я использую Ruby on Rails 3 и пытаюсь извлечь некоторые данные из только что сохраненной дочерней модели (связанной модели), чтобы сохранить эти данные в родительской модели.
Точнее (по шагам) я хотел бы сделать:
- Сохранить дочернюю модель Учетная запись родительской модели Пользователь
- Получить только что созданное значение идентификатора учетной записии сохранить это значение в атрибуте модели User с именем
users_account_id
.
... и более явно (в значениях). Мне бы хотелось иметь следующий сценарий после сохранения учетной записи дочерней модели:
# Account values
Account.id = 222
Account.name = "Test_name"
...
Account.user_id = 111
# User values
User.id = 111
User.users_account_id = 222
Я уже выполнил первый шаг , но как я могу реализовать второй шаг?
Для получения учетной записиID, я пытался использовать обратный вызов ассоциации
class User < ActiveRecord::Base
has_one :account, :before_add => :callback_name
validates_associated :account
accepts_nested_attributes_for :account
def callback_name
self.users_account_id = Account.find_by_id(self.id).id
end
end
, но я получаю эту ошибку:
Unknown key(s): before_add