5

私はRails 4で使用できるように、Devise 3のリリース候補を使用しています。Rails 3.2では、私はUserモデルにカスタムフィールドを追加することができました。そのフィールドを単にregistration/edit.html.erbおよびregistration/new.html.erbファイルに追加するだけです(適切な移行を実行した後)。次に、そのフィールドをモデルのフィールドのリストのattr_accessibleに追加するだけです。Rails 4の下でDevits 3のカスタムユーザフィールド

しかし、Rails 4にはattr_accessibleというリストはなく、単純にビューにフィールドを追加することはできません。カスタムユーザーフィールドを追加するにはどうすればよいですか?

答えて

7

私はメインのREADME on the github page and there it wasを見るように言われました。簡単です。あなたはrails4ブランチ(plataformatec /工夫)から宝石をクローン化されていることを確認してください

DeviseController.class_eval do 
    def resource_params 
    unless params[resource_name].blank? 
     params.require(resource_name).permit(:email, :password, :password_confirmation, :remember_me) 
    end 
    end 
end 

:のようにあなたは新しい初期化子を作成する必要があることを行うための代わりattr_accessibleの工夫のための強力なパラメータを有効にする必要があり

class ApplicationController < ActionController::Base 
    before_filter :configure_permitted_parameters, if: :devise_controller? 

    protected 

    def configure_permitted_parameters 
    devise_parameter_sanitizer.for(:sign_up) << :username 
    end 
end 
0

 def configure_permitted_parameters 
     devise_parameter_sanitizer.for(:sign_in) { |u| u.permit(:username, :email) } 
     devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:username, :email, :password, :password_confirmation) } 
     devise_parameter_sanitizer.for(:account_update) { |u| u.permit(:username, :email, :password, :password_confirmation, :current_password) } 
    end 

追加モデル

+0

は、このガイドに従ってくださいます。https:// githubの.com/rails/strong_parameters –

9

からattr_accesibleを削除するには、私のために働いたApplicationControllerにするには。場合

+1

次のものも必要です: 'before_action:configure_permitted_pa​​rameters、if::devise_controller?' – stephenmurdoch

3

があなたの

ApplicationControllerには、フィルタの前にあなたがシンプルに行うことができます追加パラメータを許可する:強力なパラメータ設定のための

class ApplicationController < ActionController::Base 
    before_filter :configure_permitted_parameters, if: :devise_controller? 

    protected 

    def configure_permitted_parameters 
    devise_parameter_sanitizer.for(:sign_up) << :username 
    end 
end 
関連する問題