ユーザー管理機能の実装(1)


今回は、ユーザー管理機能の実装を行なっていきたいと思います!
1~7の手順で進めていきます
(1)では1. deviseのインストール、2. Userモデルの作成を行うところまでやっていきます

目次

  1. deviseのインストール

  2. Userモデルの作成

  3. deviseのviewファイルを追加

  4. サインアップ機能の追加

  5. ユーザー情報編集機能の追加

  6. ログアウト機能の追加

  7. フラッシュメッセージの表示機能の実装

    1. deviseのインストール

    ユーザー管理機能のの実装には、”devise”を使用します
    まず初めにGemfileを開きましょう!
    Gemをインストールするために、Gemfileに追記を行います

(略)
Gem ‘devise’
(略)

Gemfileのgroup内に記述しないように注意しましょう!
*group内に記述した場合、特定の環境のみで使用される設定になってしまします

次に、deviseのインストールを行います ターミナルでbundle installを行い、続いてdevise用のインストールコマンドの実行を行います!

% bundle install
% rails g devise:install

これでdeviseのインストールは完了です!

2. Userモデルの作成

ユーザーの管理を目的とするモデルファイルやテーブルを作成していきます!
次の2つの点に注意して進めていきましょう!

・deviseで使用するモデルを作成する際は、rails g modelといった通常のモデル作成とはコマンドが異なる
・どんなカラムを追加するか、カラムにどんな制約をかけるかを事前にDB設計を確認する

それでは、Userモデルを作成していきましょう! まず、ターミナルで以下のコマンドを実行します

% rails g devise user

これによりuser.rbマイグレーションファイルなどが作成されました
routes.rbにもdevise_for :usersの記述が追加されました

次に、マイグレーションファイルに追記を行います migrateディレクトリにマイグレーションファイルが作成されているので確認してみましょう! xxxxxxxxxxxxxx_devise_create_users.rbといったファイルが確認できると思います
ファイルが確認できたら、nameカラムにNUT NULL制約をかけるために、changeアクションの中に以下の追記を行います

xxxxxxxxxxxxxx_devise_create_users.rb
t.string :name, null: false

また、同じくnameカラムに一意性制約をかけるために、changeアクション外には次の追記をしていきましょう

xxxxxxxxxxxxxx_devise_create_users.rb
add_index :users, :name, unique: true

しかしこのままでは空文字も保存できてしまうため、user.rbに以下の追記を行います

user.rb
validates :name, presence: true, uniqueness: true

最後にマイグレーションの実行を忘れずに行いましょう!

% rails db:migrate

今回はここまで!
ユーザー管理機能の実装(2)では、deviseのviewファイルを追加などを行なっていきます
お疲れさまでした!