1
0

More than 1 year has passed since last update.

【Rails】Deviseでログイン機能の実装

Last updated at Posted at 2022-03-09

Deviseとは

ログイン機能の実装を簡単にしてくれるRubyのgemの1つ。
今回Railsの学習中に使用したので自分用のメモとしてまとめてみました。

Devise導入

Gemfileに以下を追記します。

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を返します。

1
0
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
1
0