Ruby on Railsでページタイトルの設定を行う方法です。ページタイトルはブラウザの上にでてくるタブに表示される⬇︎こちらですね。
動作環境
1 2 |
ruby 2.5.1 rails 5.2.1 |
ヘルパーメソッドの作成
次のようにApplicationHelperに全ページ共通のpage_titleヘルパーを作成します。
app/helpers/application_helper.rb
1 2 3 4 5 6 7 |
module ApplicationHelper def page_title title = "リモノート" title = @page_title + " - " + title if @page_title title end end |
レイアウトファイルのtitleタグを設定したヘルパーメソッドに書き換えます。
app/views/layouts/application.html.erb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<!DOCTYPE html> <html> <head> <title><%= page_title %></title> <!-- ここを書き換え --> <%= csrf_meta_tags %> <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %> <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %> </head> <body> <%= yield %> </body> </html> |
これでこのレイアウトを使うビューは同じページタイトルになります。
ページごとにタイトルの値を設定する
ページごとに設定する場合は、それぞれのビューに次のように設定します。
app/views/users/edit.html.erb
1 |
<% @page_title = 'ユーザー編集' %> |
次は動的なタイトルの設定をする場合です。
app/views/articles/show.html.erb
1 |
<% @page_title = "#{@user.name}さんの記事" %> |
これでページタイトルをページごとに設定できたかと思います!
参考までにその他の方法としては、RailsTutorialでyieldを使う方法など紹介されていますのでご参考までに。
以上です!ご覧いただきありがとうございました!!