はじめに
初投稿です。
現在、プログラミングを勉強しています。
備忘録やアウトプットとして投稿していきたいと思います。
誤った内容のものもあると思います。その際はご指摘いただけると幸いです。
目次
・ deviseとは
・ 導入手順
・ よく使用するメソッド
deviseとは
ユーザー管理機能を簡単に実装することができるgemです。
実際に多くのアプリケーションで使用されています。
導入方法
1,Gemfileに以下の記述を記載する。
gem 'devise'
2,ターミナルにてbundle installを実行。実行後サーバーの再起動をする。
3,rails g devise:installを実行し、deviseに必要な設定関連ファイルを作成する。
※「:」が抜けると設定関連ファイルではなくモデルが作成されてしまうので注意
% bundle install
% rails g devise:install
4、モデルの作成
rails g devise: モデル名を実行後、マイグレーションファイルに追加するカラムを記載し、
rails db:migrateを実行。
% rails g devise モデル名
% rails db:migrate
5、コントローラー・ビューの作成
deviseのgem内にある既存ファイルを読み込んでいるため表示されない。
設定に変更を加える場合には以下のコマンドを実行。
rails g devise:views
rails g devise:controller コントローラー名
よく使用するメソッド
以下のメソッドはdeviseを導入することにより使用することが可能になるメソットです。
そのうちよく使用するメソッドをまとめました。
authenticate_user!
ログイン状態によって表示するページを切り替えるメソッド。
処理が呼ばれた段階で、ユーザーがログインしていなければ、そのユーザーをログイン画面に遷移させる。
current_user
現在ログインしているユーザーの情報を取得できる。
devise_controller?
deviseに関する処理が行われたときtrueを返す。
基本的にifと合わせて使用することが多い。
user_signed_in?
ユーザーがサインインしている場合にtrueを返す。
基本的にifと合わせて使用することが多い。
devise_parameter_sanitizer
deviseにおけるparamsのようなメソッド
このメソッドとpermitメソッドを組み合わせることにより、deviseに定義されているストロングパラメータに対し、自分で指定したカラムを追加することができる。
def configure_permitted_parameters # メソッド名は慣習
devise_parameter_sanitizer.permit(:deviseの処理名, keys: [:許可するキー])
end
deviseの処理名
:sign_in ログイン
:sign_up 新規登録
:account_update アカウント更新