Как мне создать дочернюю запись, используя вспомогательный метод build_?

#ruby-on-rails #activerecord

#ruby-on-rails #activerecord

Вопрос:

В моем user.rb файле после создания пользователя я создаю профиль для пользователя с помощью следующего вспомогательного метода:

 profile = user.profile.build(profile_params)
profile.save
  

И после этого я хочу создать дочернюю запись позиции профиля, но, похоже, методы сборки не работают для дочерних записей. Вот мой код:

 position = profile.build_position(position_params)
position.save
  

Я получаю эту ошибку:

неопределенный метод `build_position’ для #

Что я делаю не так? Я трижды проверил все свои ассоциации. Они настроены правильно. User has_one Profile , и Profile belongs_to User . Profile has_many Positions , и Position belongs_to Profile .

Пользователь> Профиль> Позиции

Ответ №1:

Для has_many объединения используйте association.build

пример.

 position = profile.positions.build(position_params)