初めまして、これから自分が学習した内容をまとめていこうと思い、投稿を始めました。
まず最初は、Deviseを利用した会員機能の実装です。
1.deviseをインストールする
Gemfileにdevise
を追加し、インストールします。
gem 'devise'
次に以下のコマンドで bundle install
を実行します。
bundle install
2.deviseのセットアップ
devise
をrailsアプリにセットアップします。
rails g devise:install
*g はgenerateのg です。
このコマンドは、deviseの設定ファイルを作成し、初期設定を行います。
3.Flashメッセージの設定
devise
では、フラッシュメッセージがログインやサインアップの成功/失敗時に表示されます。以下をの記述をapplication.html.erbに追加します。
<p class="notice"><%= notice %></p>
<p class="alert"><%= alert %></p>
4.ユーザモデルを作成
devise
を使って、ユーザモデルを作成します。例えば、User
モデルを作成する場合は次のコマンドを実行します
rails g devise User
これにより、User
モデルとdevise
関連のマイグレーションファイルが作成されます。
5.マイグレーションの実行
作成されたマイグレーションファイルをデータベースに反映させます。
rails db:migrate
6.ルーティングの設定
routes.rb
ファイルにdevise
のルーティングを設定します。この設定はdevise
が自動で行いますが、確認のために以下の記述があるか確認しておきましょう。
devise_for :users
7.ビューのカスタマイズ(必要に応じて)
デフォルトのdevise
のビューを編集したい場合は、以下のコマンドを生成します。
rails g devise:views
これにより、app/views/devise/
以下に各種フォーム(ログイン、サインアップ、パスワードリセットなど)のテンプレートが生成され、カスタマイズできるようになります。
8. ログイン必須ページの設定
コントローラーで認証が必要なアクションを指定するには、before_action :authenticate_user!
を使用します。
class SomeController < ApplicationController
before_action :authenticate_user!, only: [:show, :edit]
# 他のアクション
end
9.サインアップやログインの確認
アプリケーションを起動して、以下のパスでdevise
が提供するサインアップやログインページが機能しているかを確認します。
・/users/sign_in
(ログイン)
・/users/sign_up
(サインアップ)
10.その他の設定やカスタマイズ
ストロングパラメーター:サインアップ時に追加の情報(名前やプロフィールなど)を許可したい場合、ApplicationController
にストロングパラメーターを設定します。
class ApplicationController < ActionController::Base
before_action :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_up, keys: [:name])
end
end
これにより、name
というフィールドがサインアップフォームで許可されます。