Получение "невозможно записать неизвестный атрибут" при попытке сохранить ассоциацию has_many

Я использую Rails 5. У меня есть две модели, которые связаны друг с другом...

class Scenario < ApplicationRecord
  belongs_to :grading_rubric, optional: true
  has_many :confidential_memo
  has_many :roles

  attr_accessor :roles_str
end 

а также

class Role < ApplicationRecord
  belongs_to :scenario
end

У меня есть эта таблица, которая относится к двум...

sims=> \d scenario_roles
                                  Table "public.scenario_roles"
   Column    |            Type             |                          Modifiers                          
-------------+-----------------------------+-------------------------------------------------------------
 id          | integer                     | not null default nextval('scenario_roles_id_seq'::regclass)
 scenario_id | integer                     | 
 role_id     | integer                     | 
 created_at  | timestamp without time zone | not null
 updated_at  | timestamp without time zone | not null

Однако, когда я пытаюсь создавать и сохранять вещи в моем контроллере, у меня возникают проблемы. Вот что я делаю

  def create
    @scenario = Scenario.new(scenario_params)
    # Define the roles for this scenario
    role_names = @scenario.roles_str.split("\n")
    roles = []
    role_names.each do |role|
      role_obj = Role.new({:name => role, :scenario => @scenario})
      if role_obj.save!
        roles.push(role_obj)
      end
    end
    @scenario.roles = roles
    respond_to do |format|
      if @scenario.save

Я получаю сообщение об ошибке "не могу написать неизвестный атрибут scenario_id"В строке" role_obj = Role.new({:name => role,:script => @scenario}) ". Что я делаю неправильно?

0 ответов

Другие вопросы по тегам