Хук ActiveRecord для создания строки в базе данных при создании - PullRequest
0 голосов
/ 30 января 2012

Каким будет правильный способ создания строки в базе данных при создании?

Например, у вас есть модель User, где вы создаете нового пользователя

User.rb model
user_id
user_id =1 

Теперь я ищу способ создания нового объекта / строки в базе данных для других моделей, например

Account.rb model 
Should create a new row in account table with user_id = same as user_id above

В настоящее время я использую

  = f.fields_for :profile do |f| 
  = f.text_field  :some_value_for_profile

Внутри моего пользователя создайте представление, чтобы некоторые значения записывались в базу данных при создании пользователя, но это не «путь рельсов», и он хотел бы использовать хуки ActiveRecord, чтобы сделать это вместо этого.

1 Ответ

1 голос
/ 30 января 2012

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

Предполагается, что между ними есть одно отношение (пользователь has_one account)

#in controller
@user = User.new params[:users]
@account = @user.build_account params[:account]
@user.save

В противном случае, если вы пытаетесь создать учетную запись по умолчанию для всех новых пользователей без сбора данных учетной записи во время регистрации пользователя, вы можете использовать обратный вызов after_create

#in user.rb
after_create :add_account

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