Проблема со сборкой для ассоциации has_one

#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