2017-11-18 10 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_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는 배열 값과의 작업과 방법을 만들 ... :(나쁜 영어

답변

0

죄송 을이 혼동 될 수있다. 코드가 user_skill_selected_params 강력한 매개 변수가 아닌 create 메서드로 params[:user_skill_selected][:users]으로 전달되므로 해당 오류가 표시됩니다.

변경이 줄이로

user_skill_selected = UserSkillSelected.create(params[:user_skill_selected][:users]) 

:이 오류를 제거해야

user_skill_selected = UserSkillSelected.create(user_skill_selected_params) 

합니다.

+0

내 user_skill_selected_params에 사용자 매개 변수가 필요합니다. , { "USER_ID"54 "subskill_id"17 "skill_id 그냥이 [ {54 "subskill_id ": 20 "skill_id "3 "USER_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_params [: users]) # 체크 쓰루 gh 배열이 모두 유효하면 user_skill_selected.all이면? {| item | item.valid?} render json : {json_status : save_success} else render json : {json_status : save_failed} end end – cahyowhy