2013-07-08 15 views
7

私はdeviseを使用しているレール4アプリケーションを持っています。私はユーザーがそれらに関連付けられているユーザー名を持つことを許可しようとしています。レールを作成するユーザー名を追加する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 

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

しかし、私はこのエラーを取得する:

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

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

ありがとうございました!

答えて

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

+0

感謝。 – infinity

+1

私はapplication_controllerでこれをやっているので、登録してログインできるようになりました(登録直後)。しかし、私はログインページからログインすることができません。私はユーザー名のためのログイン/認証キーのセットアップがあり、私はデータベースにユーザー名とパスワードのフィールドを持っています。すべての手がかりは?ここで私の問題のより詳細なバージョンです - http://stackoverflow.com/questions/18804971/devise-rails-4-notable-to-login –

関連する問題