ユーザー関連のビューをカスタマイズしよう

学習の目標

本章では、以下の内容を学習します。

  • Deviseで生成されたビューファイルを取り出す方法を理解する
  • ビューファイルの編集方法とカスタマイズの基本を学ぶ
  • Tailwind CSSを使ったフォームデザインの改善方法を習得する
  • Deviseの提供するビューの全体像を把握する

はじめに

今回は、ユーザー登録画面とログイン画面をカスタマイズしていきます。以前見た通り、Deviseでは最低限のUI(User Interface、つまりユーザーのための画面)は用意してくれています。しかし、デフォルトの見た目はシンプルすぎるため、ポートフォリオとして提出するには不十分です。

そこで今回は、Tailwind CSSを使って見た目を整えていきます。まずはユーザー登録画面から手をつけていきましょう。

Deviseのビューファイルを生成する

Deviseの特徴として、ビュー(画面)に関するファイルはGem内部に組み込まれており、そのままでは編集することができません。これは、Gemを更新したときに自分の変更が上書きされないようにするための仕組みです。

Deviseのビューをカスタマイズするためには、まずbin/rails g devise:viewsコマンドでビューファイルを自分のアプリケーションに取り出す必要があります。これにより、Gem内部のファイルではなく、自分のアプリケーション内のファイルが優先して使用されるようになります。

以下のコマンドを実行してみましょう。

$ bin/rails g devise:views

コマンドを実行すると、多くのファイルが生成されます。これらはDeviseが提供する様々な機能(ユーザー登録、ログイン、パスワードリセットなど)に対応するビューファイルです。

生成されたファイルの確認

生成されたファイルは多岐にわたりますが、TechLogで特に使用するのは以下の3つのファイルです。

app/views/devise/registrations/new.html.erb

ユーザー登録ページのビューファイルです。新規ユーザーが登録するためのフォームが含まれています。

app/views/devise/sessions/new.html.erb

ログインページのビューファイルです。既存ユーザーがログインするためのフォームが含まれています。

app/views/devise/shared/_error_messages.html.erb

エラーメッセージを表示するためのパーシャル(部分テンプレート)です。ユーザー登録やログイン時のエラーを表示するために使用されます。

その他にも多くのファイルが生成されていますが、これらはパスワードの再設定やメール確認など、TechLogではひとまず使用しない機能に関するものです。必要に応じて後から編集することもできます。

変更をコミット

ビューファイルの生成は大きな変更なので、ここで一度コミットしておきましょう。bin/devを起動していない別なターミナルで以下のコマンドを実行します。

$ git add .
$ git commit -m "deviseのviewファイル(編集用)を生成"
$ git push

変更をコミットすることで、作業の区切りを明確にし、何か問題が発生した場合にこの時点まで戻ることができます。定期的にコミットする習慣をつけることで、開発をより安全に進めることができます。

Deviseのビューファイルについて

今回はDeviseのビューファイルを生成し、見た目をカスタマイズできるようにしました。同様に、コントローラーについても必要に応じてカスタマイズすることができます。その場合も、まずファイルを生成する必要があります。

Deviseが提供するビューファイルには、それぞれ重要な役割があります。TechLogでは使用しないファイルもありますが、実際のプロジェクトでは以下のような機能に対応するビューが含まれています:

  • confirmations: メールアドレス確認機能のビュー
  • passwords: パスワードリセット機能のビュー
  • registrations: ユーザー登録・編集機能のビュー
  • sessions: ログイン機能のビュー
  • unlocks: アカウントロック解除機能のビュー
  • mailer: 各種メール送信用のビュー

これらのファイルの役割を理解し、全体像を把握しておくとDeviseの理解が深まります。興味のある方は、以下の記事も参考にしてみてください。

このセクションは有料サブスクリプションへの登録、またはログインが必要です。完全なコンテンツにアクセスするには、料金ページ(/pricing)をご覧ください。購入済みの場合は、ログインしてください。

Basicプランでより詳しく学習

この先のコンテンツを読むにはBasicプラン以上が必要です。より詳細な解説、実践的なサンプルコード、演習問題にアクセスして学習を深めましょう。

作成者:とまだ
Previous
User モデルにテストを追加しよう