Railsでユーザー認証機能を実装しよう~定番のgem「devise」活用法(2)
これだけは押さえておきたい!Rails開発で使えるgemパッケージ/ツール 第2回
ダウンロード サンプルファイル (113.6 KB)
deviseによって追加されたルーティングの確認
rails g devise Userコマンドで追記されたルーティングを確認します。
Rails.application.routes.draw do devise_for :users # 追記された行 root to: 'home#index' end
このdevise_forというDSLはdeviseが提供するもので、ユーザー登録にまつわるページへのルーティングを定義してくれます。
このDSLによって、Railsアプリに追加されるルーティングを確認してみましょう。
bin/rails routes
Prefix Verb URI Pattern Controller#Action
new_user_session GET /users/sign_in(.:format) devise/sessions#new
user_session POST /users/sign_in(.:format) devise/sessions#create
destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy
new_user_password GET /users/password/new(.:format) devise/passwords#new
edit_user_password GET /users/password/edit(.:format) devise/passwords#edit
user_password PATCH /users/password(.:format) devise/passwords#update
PUT /users/password(.:format) devise/passwords#update
POST /users/password(.:format) devise/passwords#create
cancel_user_registration GET /users/cancel(.:format) devise/registrations#cancel
new_user_registration GET /users/sign_up(.:format) devise/registrations#new
edit_user_registration GET /users/edit(.:format) devise/registrations#edit
user_registration PATCH /users(.:format) devise/registrations#update
PUT /users(.:format) devise/registrations#update
DELETE /users(.:format) devise/registrations#destroy
POST /users(.:format) devise/registrations#create
root GET / home#index
以上のように、devise_forによって定義されたコントローラー/アクションにURIが対応している様子が分かります。Railsアプリ側ではDevise::SesstionsControllerは定義されていませんが、devise側で定義されたコントローラーで動作するようになっています。これも前回解説したRails enginesとしての特徴です。
コントローラーの修正
現時点ですでに基本的な動作を確認することもできますが、引き続きトップページに対応するコントローラーを作成して、ログインしていないとログイン画面にリダイレクトするように動作を定義します。
bin/rails g controller home index
作成されたコントローラーにdeviseが提供するauthenticate_user!メソッドを追記します。このメソッドをbefore_actionで定義することで、ログインしていない場合にログイン画面にリダイレクトさせることができます。
class HomeController < ApplicationController before_action :authenticate_user!, only: :index # 追記 def index end end
この記事は参考になりましたか?
- これだけは押さえておきたい! Rails開発で使えるgemパッケージ/ツール連載記事一覧
- この記事の著者
-
WINGSプロジェクト 竹馬 力(チクバ ツトム)
< WINGSプロジェクト について> 有限会社 WINGSプロジェクト が運営する、テクニカル執筆コミュニティ(代表 ...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
