Я использую магистраль и пытаюсь создать новый объект, и я столкнулся с этой ошибкой. Я думал, что рельсы будут просто игнорировать атрибуты, которые не волнуют. то есть токен аутентификации не пытается быть добавлен к моему объекту.
Мой контроллер:
def create
page = Page.find(params[:page_id])
branch = page.page_branches.build(params[:page_branch])
branch.form = page.form
if branch.valid?
page.page_branches << branch
redirect_to(edit_page_path(page, :anchor => "branch-panel"))
else
raise "#{branch.errors.map}"
end
end
Ошибка:
Processing by PageBranchesController#create as JSON
Parameters: {"page_branch"=>{"next_page_id"=>"KS5ad82889e04e5806e0455d5a81e81a9511",
"description"=>"linking", "utf8"=>"", "authenticity_token"=>"", "id"=>nil,
"page_id"=>"KS000c29724a16-u-2TQMP57-gYm-U", "trigger_type"=>"Always",
"base_options"=>"AllowAnonymous;BASE",
"question_options"=>"KS000c29724a16CfC2TQUL1--gxG-U", "keyword_options"=>"",
"qualification"=>"", "commit"=>""}, "page_id"=>"KS000c29724a16-u-2TQMP57-gYm-U"}
WARNING: Can't mass-assign protected attributes: id
Completed 500 Internal Server Error in 239ms
ActiveRecord::UnknownAttributeError (unknown attribute: utf8):
app/controllers/page_branches_controller.rb:21:in `create'
Благодаря ответу ниже:
Я добавил attr_accessible на моей модели рельсов:
attr_accessible :page_id, :page_name, :next_page_id, :next_page_name,
:description, :trigger_type, :internal_qualification,
:order, :form_id, :qualification
При этом я получаю следующие предупреждения, но сборка завершается успешно
WARNING: Can't mass-assign protected attributes: utf8, authenticity_token, id, base_options, question_options, keyword_options, commit