Railsでユーザー認証機能を実装しよう~定番のgem「devise」活用法(1)
これだけは押さえておきたい! Rails開発で使えるgemパッケージ/ツール 第1回
ユーザー認証機能を実装(2)
国際化対応用設定ファイルを確認
ジェネレーターコマンドで作成されたもう1つのファイルに、config/locales/devise.en.ymlがあります。ユーザー認証に関わる機能を利用した際に表示されるflashメッセージも、deviseのデフォルトでは英語で表示されます。メッセージを日本語化するには、devise.ja.ymlファイルを別途用意する必要があります。自前で用意しても良いのですが、メッセージを日本語化するためのgemであるdevise-i18nを使うとより簡単に日本語化できます。
ここでは、解説をdeviseの機能にフォーカスするため、デフォルトの英語のままで進めます。
ActionMailerの設定を追加
次に、ActionMailerのビューでURLを生成する際のデフォルト値を手順の通りに追記します。以下の設定はRailsの実行環境がdevelopmentモードのものなので、productionモードで動作させる場合は別途設定が必要となる点に注意が必要です。
config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }
ルーティングの追加
ここではdeviseが提示するルーティングの通り、トップページのルーティングを追記します。ログインしないとアクセスできない対象ページのルーティング定義が既にある場合は、この手順は省略しても問題ありません。
root to: 'home#index'
flashメッセージ用HTMLの追加
ユーザー登録等の際に表示されるflashメッセージのHTMLを追加します。ここではdeviseが提示する通り、全てのページに共通で表示する設定である共有レイアウトとして追加します。個別でflashメッセージを表示する場合は適宜修正してください。
…(中略)… <body> <p class="notice"><%= notice %></p> # 追記 <p class="alert"><%= alert %></p> # 追記 <%= yield %> </body> …(中略)…
ビューファイルの作成
deviseが提供するgenerateコマンドを使い、ユーザー登録等に対応するページ用のビューファイルを一括で作成します。
bin/rails g devise:views
Running via Spring preloader in process 21022
invoke Devise::Generators::SharedViewsGenerator
create app/views/devise/shared
create app/views/devise/shared/_links.html.erb
invoke form_for
create app/views/devise/confirmations
create app/views/devise/confirmations/new.html.erb
create app/views/devise/passwords
create app/views/devise/passwords/edit.html.erb
create app/views/devise/passwords/new.html.erb
create app/views/devise/registrations
create app/views/devise/registrations/edit.html.erb
create app/views/devise/registrations/new.html.erb
create app/views/devise/sessions
create app/views/devise/sessions/new.html.erb
create app/views/devise/unlocks
create app/views/devise/unlocks/new.html.erb
invoke erb
create app/views/devise/mailer
create app/views/devise/mailer/confirmation_instructions.html.erb
create app/views/devise/mailer/email_changed.html.erb
create app/views/devise/mailer/password_change.html.erb
create app/views/devise/mailer/reset_password_instructions.html.erb
create app/views/devise/mailer/unlock_instructions.html.erb
deviseはRails enginesを採用しているため、対応するビューファイルはデフォルトでapp/views/devise/ディレクトリに全て作成されることに注目してください。
まとめ
ここまで、Railsアプリ開発におけるRubyGemsの役割を確認すると共に、deviseが提供する基本的な機能について、概要を理解し、実際にdeviseが提供するコマンドを使用してdeviseの導入を開始しました。
次回は、deviseを用いることで、Railsチュートリアルなどの実装に比べて、ほとんどプロダクトのコードを記述することなくユーザー認証機能を追加できることを体験していきます。
この記事は参考になりましたか?
既に会員の方はを行ってください。
- これだけは押さえておきたい! Rails開発で使えるgemパッケージ/ツール連載記事一覧
- この記事の著者
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、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編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
WINGSプロジェクト 竹馬 力(チクバ ツトム)
< WINGSプロジェクト について> 有限会社 WINGSプロジェクト が運営する、テクニカル執筆コミュニティ(代表 ...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
