2014-11-17 1 views
0

I 사용자 업데이트고안 포함 된 개체 '허가되지 않은 매개 변수'오류

class RegistrationsController < Devise::RegistrationsController 

    def update 
     super 
     UserMailer.send_mail_on_account_update(current_user).deliver 
    end 

    before_filter :configure_permitted_parameters, if: :devise_controller? 
    protected 
    def configure_permitted_parameters 
     devise_parameter_sanitizer.for(:account_update) { |u| u.permit(:first_name, :last_name, :username, :email, :password, :password_confirmation, :current_password, :shipping_details) } 
    end 

    def after_update_path_for(resource) 
     edit_user_registration_path(resource) 
    end 
end 

내 사용자 모델 embeds_many :shipping_details 및 배송 자세한 내용은 다음 컨트롤러가 도시, 주와 같은 일부 필드가 있습니다.

내 사용자 업데이트 양식에는 shipping_details의 중첩 속성이 있습니다. 하지만 양식을 제출하면 다음과 같이 표시됩니다. -

Parameters: {"utf8"=>"✓", "authenticity_token"=>"/baDj9ThSRdF80inrxzM2G3sTtCXYqxNpl4PgDLJczM=", "user"=>{"first_name"=>"rohit", "last_name"=>"sharma", "email"=>"[email protected]", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]", "current_password"=>"[FILTERED]", "shipping_details"=>{"address"=>"jldf", "city"=>"test"}}, "commit"=>"Update Details"} 
Unpermitted parameters: shipping_details 

shipping_details 필드를 허용하려면 어떻게해야합니까? 내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변

1

제공 한 방법 :shipping_details은 간단한 문자열 값을 기대하기 때문에 해시를 전달합니다. 귀하의 허락을 받아야합니다 :

+0

(해운 세부 정보가 여러 개있을 수 있기 때문에) 배송 세부 정보를 해시 배열로 지정하려면 어떻게해야합니까? 나는 u.permit (: first_name, : last_name, : username, : email, : password, password_confirmation, : current_password, shipping_details : [: address, : city])을 수행했고 정의되지 않은 메소드 인 with_indifferent_access를 얻었다. – jacksparrow007

관련 문제