导轨5 ForbiddenAttributesError上批量操作
问题描述:
我尝试批量操作在我的轨道控制,这是我的脚本导轨5 ForbiddenAttributesError上批量操作
def update_by_user
user_skill_selected = UserSkillSelected.create(params[:user_skill_selected][:users])
# check through array if all is valid
if user_skill_selected.all? {|item| item.valid?}
render json: {json_status: save_success}
else
render json: {json_status: save_failed}
end
end
,这是我user_skill_selected_params
def user_skill_selected_params
params.require(:user_skill_selected).permit(:user_id, :subskill_id, :skill_id, :users => [])
end
不幸的是我在日志中得到一个错误,日志说
"exception": "#<ActiveModel::ForbiddenAttributesError:ActiveModel::ForbiddenAttributesError>",
之后,我尝试从轨道控制台批量操作与我们ING创建方法与数组值及其工作
谁能解决这个... :( 遗憾的英语不好
答
这会引起混乱。您的代码正在通过params[:user_skill_selected][:users]
传递给模型create
方法,而不是您的user_skill_selected_params
强参数,这就是您看到该错误的原因。
改变这一行:
user_skill_selected = UserSkillSelected.create(params[:user_skill_selected][:users])
要这样:
user_skill_selected = UserSkillSelected.create(user_skill_selected_params)
它应该消除这种错误。
我只需要user_skill_selected_params中的用户参数。我只是想通过这个[ { “USER_ID”:54, “subskill_id”:20, “skill_id也”:3 }, { “USER_ID”:54, “subskill_id”:17, “skill_id也“:3 },{ “USER_ID”:54, “subskill_id”:23, “skill_id也”:4 }]到我UserSkillSelected.create – cahyowhy
确定其与该工作变形点焊update_by_user user_skill_selected = UserSkillSelected.create !(user_skill_selected_params [:users]) #check throu gh数组如果全部有效 if user_skill_selected.all? {|项目| item.valid?} render json:{json_status:save_success} else render json:{json_status:save_failed} end end – cahyowhy