Deviseとは
ログイン機能の実装を簡単にしてくれるRubyのgemの1つ。
今回Railsの学習中に使用したので自分用のメモとしてまとめてみました。
Devise導入
Gemfileに以下を追記します。
gem 'devise'
次にbundle installを実行します。
$ bundle install
以下のコマンドでRailsアプリケーションにDeviseを導入します(プロジェクトディレクトリ)。
$ rails g devise:install
userモデルを作成
Deviseを用いてuserモデルを作成します(プロジェクトディレクトリ)。
$ rails g devise user
マイグレーションファイル(db/migrate/YYYYMMDDhhmmss_devise_create_users.rb)が生成されるので、
他に追加したいカラムがあればここに追記。
追記が完了しましたらマイグレーションを実行します。
$ rake db:migrate
ローカルサーバーを立ち上げてブラウザから http://localhost:3000/users/sign_up/ を開くと新規登録画面が表示されます。
しかしこのままだとViewの装飾などができないので以下のコマンドでViewファイルを生成します(プロジェクトディレクトリ)。
$ rails g devise:views
これにより app/views/devise 傘下にDeviseで使用するビューが作成されます。
ディレクトリ名 | 画面 |
---|---|
sessions | ログイン画面 |
registrations | ユーザ登録画面とアカウント編集画面 |
confirmations | 認証メール再送信するための画面 |
passwords | パスワードを変更するための画面 |
unlocks | アカウント凍結画面 |
shared | Deviseの画面に遷移させるためのリンク |
Deviseのルーティング確認
URL | HTTPメソッド | 動作 |
---|---|---|
/users/sign_up | GET | ユーザ登録 |
/users/sign_in | GET | ログイン |
/users/edit | GET | ユーザ編集 |
/users/sign_out | DELETE | ログアウト |
その他
以下Deviseが用意している便利なメソッドです。
current_user
現在ログインしているユーザを取得することができます。
user_signed_in?
ログイン状態かどうかを判定するメソッドです。ログインしていればtrue、していなければfalseを返します。