2017-11-18 177 views
1

我尝试批量操作在我的轨道控制,这是我的脚本导轨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_pa​​rams

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创建方法与数组值及其工作

谁能解决这个... :( 遗憾的英语不好

回答

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) 

它应该消除这种错误。

+0

我只需要user_skill_selected_pa​​rams中的用户参数。我只是想通过这个[ { “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

+0

确定其与该工作变形点焊update_by_user user_skill_selected = UserSkillSelected.create !(user_skill_selected_pa​​rams [: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