使用環境
- Rails 6~
- Ruby 3.1.0
- M1 Mac
Rails タイトルを動的にする方法
自分も初学者ですが、誰でもできるよう、分かりやすく書いていきます。
app/helper/appliction_helper.rb
以下のコードをコピー&ペーストして下さい。
コードに関しては、、、調べて下さい🥹
僕はおまじないだと言い聞かせてます🥹
module ApplicationHelper
BASE_TITLE = "KAKEIBO".freeze #ここで変えたいタイトルにしてる
↑ここを変えたいタイトルにしてあげる
def full_title(page_title)
page_title.blank? ? BASE_TITLE : "#{page_title} - #{BASE_TITLE}"
end
end
app/views/layouts/appliction.html.erb
タイトルタグを以下のコードに変えてください。
#変更前
<title>test_app</title>
#変更後
<title><%= full_title(yield(:title)) %></title>
これでリロードして確認してみると、期待するタイトルになっているはず
ページ毎に変えたい場合
今回、userのshowのタイトルを自分の名前で、
表示したいというお話で進めていきます。
users/show.html.erb
一番上に以下のコードを入れてください
<% provide(:title, @user.name) %>
リロードすると変更されています
indexなどのページを変えたい場合
一番上に以下のコードを入れてください
<% provide(:title, "一覧") %>
↑ここをカスタマイズすればok