2017-11-18 180 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