#ruby-on-rails #ruby-on-rails-3 #ruby-on-rails-4 #ruby-on-rails-5
#ruby-on-rails #ruby-on-rails-3 #ruby-on-rails-4 #ruby-on-rails-5
Вопрос:
Я получаю сообщение об ошибке каждый раз, когда пытаюсь сохранить модель с ассоциацией has_one, и я не уверен, что я делаю неправильно. Вот сообщение об ошибке и код ниже
user.rb
has_one :user_options
user_option.rb
belongs_to(
:user,
class_name: 'User',
foreign_key: 'user_id',
inverse_of: :user_options
)
user_options_controller.rb
def create
@user = current_user
@user_option = current_user.build_user_option(user_option_params)
respond_to do |format|
if @user_option.save
format.html { redirect_to @user_option, notice: 'User option was successfully created.' }
format.json { render :show, status: :created, location: @user_option }
else
format.html { render :new }
format.json { render json: @user_option.errors, status: :unprocessable_entity }
end
end
end
Любая помощь была бы отличной!
Ответ №1:
Изменить
has_one :user_options
Для
has_one :user_option
Согласно соглашениям ruby, вы должны использовать единственное имя для has_one
amp; plural
для has_many
ассоциации.
Как вы указали user_options
для has_one
отношения, каждый экземпляр пользовательской модели будет иметь доступ к build_user_options
amp; not build_user_option
Ref has-one-association-reference