Получение "невозможно записать неизвестный атрибут" при попытке сохранить ассоциацию 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}) ". Что я делаю неправильно?