1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Deviseを利用した会員機能の実装手順

Posted at

初めまして、これから自分が学習した内容をまとめていこうと思い、投稿を始めました。
まず最初は、Deviseを利用した会員機能の実装です。

1.deviseをインストールする

Gemfileにdeviseを追加し、インストールします。

Gemfile
gem 'devise'

次に以下のコマンドで bundle installを実行します。

bash
bundle install

2.deviseのセットアップ

deviseをrailsアプリにセットアップします。

bash
rails g devise:install

*g はgenerateのg です。
このコマンドは、deviseの設定ファイルを作成し、初期設定を行います。

3.Flashメッセージの設定

deviseでは、フラッシュメッセージがログインやサインアップの成功/失敗時に表示されます。以下をの記述をapplication.html.erbに追加します。

app/views/layout/application.html.erb
<p class="notice"><%= notice %></p>
<p class="alert"><%= alert %></p>

4.ユーザモデルを作成

deviseを使って、ユーザモデルを作成します。例えば、Userモデルを作成する場合は次のコマンドを実行します

bash
rails g devise User

これにより、Userモデルとdevise関連のマイグレーションファイルが作成されます。

5.マイグレーションの実行

作成されたマイグレーションファイルをデータベースに反映させます。

bash
rails db:migrate

6.ルーティングの設定

routes.rbファイルにdeviseのルーティングを設定します。この設定はdeviseが自動で行いますが、確認のために以下の記述があるか確認しておきましょう。

routes.rb
devise_for :users

7.ビューのカスタマイズ(必要に応じて)

デフォルトのdeviseのビューを編集したい場合は、以下のコマンドを生成します。

bash
rails g devise:views

これにより、app/views/devise/以下に各種フォーム(ログイン、サインアップ、パスワードリセットなど)のテンプレートが生成され、カスタマイズできるようになります。

8. ログイン必須ページの設定

コントローラーで認証が必要なアクションを指定するには、before_action :authenticate_user!を使用します。

ruby
class SomeController < ApplicationController
  before_action :authenticate_user!, only: [:show, :edit]
  
  # 他のアクション
end

9.サインアップやログインの確認

アプリケーションを起動して、以下のパスでdeviseが提供するサインアップやログインページが機能しているかを確認します。

/users/sign_in(ログイン)
/users/sign_up(サインアップ)

10.その他の設定やカスタマイズ

ストロングパラメーター:サインアップ時に追加の情報(名前やプロフィールなど)を許可したい場合、ApplicationControllerにストロングパラメーターを設定します。

ruby
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というフィールドがサインアップフォームで許可されます。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?