はじめに
個人でRailsアプリケーションを作った際にdeviseを使ったので備忘録として残しておきます。
deviseのヘルパーメソッドの種類
※下記のuser
の部分はモデル名なので例えばpost
がモデル名の場合はpost
に置き換えてください
ヘルパーメソッド | 説明 |
---|---|
current_user | 現在ログインしているユーザのレコードを取得する |
user_signed_in? | ユーザーがサインインしていればtrue 、サインアウトしていればfalse が返ってくる |
user_session | ユーザーのsession情報にアクセスする |
configure_permitted_parameters | モデルにストロングパラメーターを追加します。デフォルトはメールアドレスとパスワードのみ適応されています。 |
authenticate_user! | ログインしていないユーザーをログインページにリダイレクトさせます。before_action :authenticate_user! のように使います。 |
補足
authenticate_user!
only
やexception
でアクションを設定することが多い、例を以下に示す。
before_action :authenticate_user! , only: [:show, :edit, :update, :destroy]
or
before_action :authenticate_user! , except: [:show, :edit, :update, :destroy]
configure_permitted_parameters
第一引数は下記のように指定できる
・sign_up: 新規登録時
・sign_in: ログイン時
・account_update: 更新時
下記に使用例を示します。
before_action :configure_permitted_parameters, if: :devise_controller?
def configure_permitted_parameters
# サインアップ時にusernameのストロングパラメータを追加
devise_parameter_sanitizer.permit(:sign_up, keys: [:username, :image])
# アカウント編集の時にnameとprofileのストロングパラメータを追加
devise_parameter_sanitizer.permit(:account_update, keys:[:username,:image,:profile])
end