我尝试在我的rails控制器中批量操作这是我的脚本
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>",
之后我尝试使用带有数组值及其工作的create方法从rails控制台批量操作
任何人都可以解决这个问题...... :( 抱歉英文不好
答案 0 :(得分:0)
这可能令人困惑。您的代码将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)
它应该消除这个错误。