Rails で Devise のビューを作成してカスタマイズ

前回、Rails で Devise のコントローラーをカスタマイズしたのですが、カスタマイズ用コントローラーを作成した場合、同名のビューを用意してやったほうが、Rails の規約的にも分かりやすいと思います。ということで、app/views/users/ に Devise が管理するビューファイルをコピー生成します。

— 環境 —
rails 5.0.0.1
devise 4.2.0

スポンサーリンク

devise のジェネレータでビューをコピー生成

まず、Devise の gem で管理されているデフォルトのビューを、app/views/users 内にコピー生成する。

これで app/views/users というビュー用のディレクトリが生成される。

railsapp/
| app
| | views/
| | | users/
| | | | confirmations/
| | | | mailer/
| | | | passwords/
| | | | registrations/
| | | | sessions/
| | | | shared/
| | | | unlocks/

中身は以上のような感じ。Devise で管理されるビューをカスタマイズする場合は、この app/views/users を編集します。

ビューテンプレートを編集して確認

試しに、/users/sign_in がルーティングしている users/sessions#new のテンプレートである、app/views/users/sessions/new.html.erb を編集してみます。

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

h2タグの内容に「しますよー」と追加してみました。

サーバーを起動し、http://localhost:3000/users/sign_in にアクセスしてみますと以下の通り、ビューが変更されているのを確認できました。

スクリーンショット 2013-12-04 12.33.12

複数のモデルで個別のビューをカスタマイズする場合

複数のモデル(User と Admin など)を利用する場合、devise はデフォルトでは全てのモデルで同じビューを利用します。個別にビューを作成する場合は、config/initializers/devise.rb で以下を指定します。

config/initializers/devise.rb

そして、ビューを追加してカスタマイズ。

スポンサーリンク
パーフェクト Ruby on Rails は、最近読んだ Rails 本の中では一番役に立った本です。Chef や Capistrano など Rails と共によく使用される技術にも触れてあります。Ruby on Rails 4 アプリケーションプログラミングは、入門的な内容で Rails の機能全体を網羅されています。
スポンサーリンク
 
Twitterを使っていますのでフォローお願いたします!ブログの更新情報もつぶやいてます^^
(英語学習用)

Leave Your Message!