今回は、ユーザー管理機能の実装を行なっていきたいと思います!
1~7の手順で進めていきます
(1)では1. deviseのインストール、2. Userモデルの作成を行うところまでやっていきます
#目次
-
deviseのインストール
-
Userモデルの作成
-
deviseのviewファイルを追加
-
サインアップ機能の追加
-
ユーザー情報編集機能の追加
-
ログアウト機能の追加
-
フラッシュメッセージの表示機能の実装
#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アクションの中に以下の追記を行います
t.string :name, null: false
また、同じくnameカラムに一意性制約をかけるために、changeアクション外には次の追記をしていきましょう
add_index :users, :name, unique: true
しかしこのままでは空文字も保存できてしまうため、user.rbに以下の追記を行います
validates :name, presence: true, uniqueness: true
最後にマイグレーションの実行を忘れずに行いましょう!
% rails db:migrate
今回はここまで!
ユーザー管理機能の実装(2)では、deviseのviewファイルを追加などを行なっていきます
お疲れさまでした!