1
1

More than 3 years have passed since last update.

【Gem】deviseの導入

Posted at

devise

ユーザー管理機能を簡単に実装するためのGem。
ユーザー新規登録やログイン機能を簡単に実装することができる:v:(とても便利)

deviseの使い方

Gemfile編集

Gemfileの最後の行に追記する。
(開発環境、テスト環境、本番環境すべてで使用するため!と認識してます:thinking:

Gemfile
(省略)
gem 'devise'

コマンドを実行してGemインストール

ターミナル
bundle install

ローカルサーバーを起動している場合はサーバーの再起動を忘れずに!!

少し脱線

ローカルサーバーを起動した状態でコードを編集しても、ブラウザを更新すれば、その編集内容はブラウザに反映されます。しかし、開発環境で以下の変更をした場合、必ずローカルサーバーを再起動する必要があります。

  • Rubyバージョンの変更
  • テーブル・カラム情報の変更
  • Gemの導入状況の変更 ⬅︎ 今回はこれ:eyes:

これらに関わる情報は、「ローカルサーバーを起動するタイミングに1度だけ読みこまれる」ためサーバーの再起動が必要になります。

deviseの設定ファイル作成

deviseを使用するためには、Gemのインストールに加え、 devise専用のコマンドで設定ファイルを作成する必要があります。

ターミナル
rails g devise:install

このコマンドは、追加したdeviseというGemの「設定関連に使用するファイル」を自動で生成するコマンド。
deviseの設定ファイルがrailsアプリケーションにインストールされます。

deviseのモデル作成

アカウントを作成するためのモデルを新しく作成する必要があり、作成には通常のモデルの作成方法ではなく、deviseのモデル作成用コマンドでモデルを作成します。

ターミナル
rails g devise モデル名

コマンドを実行後は、routes.rbに以下のルーティングが自動的に追記されます。

config/routes.rb
Rails.application.routes.draw do
  devise_for :users
end

devise_forは、ユーザー機能に必要なルーティングを生成してくれるdeviseのメソッドです。

テーブル作成

emailとpasswordはデフォルトで入っているが、追加したいカラムがある場合は、マイグレーションファイルを編集。
テーブルの設計が確認できたらマイグレーションを実行します。

ターミナル
rails db:migrate

指定したモデル名のテーブルが作成されていれば成功:v:

最後に、サーバーの再起動を忘れずに実行しておく!!

参考

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