6
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[rails]deviseで登録・ログインができない問題

Last updated at Posted at 2020-08-01

#deviseで登録・ログインができない
deviseでユーザー登録とログイン画面を作成した後に、
デフォルト(email)以外の情報で登録・ログインをしたい時用の方法です。

viewページのフォームを編集したのに、登録・ログインできないトラップがありますので、
参考にしてください。

以下の場合、sing_upとaccount_updateのkeyを変更しています。

app/controllers/application.controller.rb
class ApplicationController < ActionController::Base
  before_action :configure_permitted_parameters, if: :devise_controller?

  protected
    def configure_permitted_parameters
		if resource_class == User
   			devise_parameter_sanitizer.permit(:sign_up, keys: [:name,:email])
   			devise_parameter_sanitizer.permit(:sign_in,keys:[:email])
   			devise_parameter_sanitizer.permit(:account_update,keys:[:name,:email])
    end
  end
end

###defore _action

before_action :configure_permitted_parameters, if: :devise_controller?

before_actionは一種のフィルターのようなもので、application.contollerに記述することで、全てのコントローラーに対して、実行されます。

:devise_contoller?とはdeviseを生成した際にできるヘルパーメソッドの一つで、
deviseに関連する画面に飛ぶなら、ということです。
こうすることで全てのdevise画面でconfigure_permitted_parametersが起動します。

つまりもしそれがdeviseのコントローラーだったら(devise_controller?というメソッドの返り値がtrueだったら)configure_permitted_parametersを呼び出すということです。

6
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?