7

私はdeviseを使ったRails 4アプリケーションを持っています。ユーザーがユーザー名を関連付けられるようにしようとしています。

ユーザー テーブルにユーザー名 (文字列) 列を追加し、アプリケーション コントローラーを次のようにしました。

class ApplicationController < ActionController::Base

    before_filter :configure_permitted_parameters, if: :devise_controller?
    protect_from_forgery with: :exception
    protected
    def configure_permitted_parameters
       devise_parameter_sanitizer.for(:sign_in) { |u| u.permit(:username, :email) }
    end

end

また、users/sign_up ページにユーザー名のフィールドを追加しました。

しかし、私はこのエラーが発生します:

undefined local variable or method `devise_parameter_sanitizer' for #<Devise::RegistrationsController:0x00000101378a28>

したがって、基本的に私の質問は、なぜこのエラーが表示されるのか、またはユーザーにユーザー名を取得させるにはどうすればよいですか?

助けてくれてありがとう!

4

1 に答える 1

16

サインイン方法でのみユーザー名を許可していますが、新しいユーザーを作成するときは、サインアップ方法であると想定しています。だからこれを試してください:

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

ソース: https://github.com/plataformatec/devise#strong-parameters

于 2013-07-09T17:46:22.833 に答える