環境
- macOS Mojave 10.14.4
- Rails 5.2.2
- ruby 2.6.1
やりたいこと
動的にタイトルを変えたい
よくある動的にタイトルを変える方法。トップ画面に偏移したらドメイン名オンリー。ログイン画面に偏移したらlogin/ドメイン名みたいな形にしたい。
Railsチュートリアルに詳しい解説があるので、しっかり学習したい人はそちらをどうぞ。
application.html.erb
に直接書いても問題ないですが、あとあと微調整が必要になってくるのでhelperを使ってタイトルを定義します。
1
2
3
4
5
6
7
8
9
10
11
12
|
# app/helpers/application_helper.rb
module ApplicationHelper
# ページごとの完全なタイトルを返す
def full_title(page_title = '')
base_title = "bokunonikki.net"
if page_title.empty?
base_title
else
page_title + " | " + base_title
end
end
end
|
あとは、full_title
ヘルパーをapplication.html.erb
で使えるようにします。
1
2
3
4
5
|
<!-- app/views/layouts/application.html.erb -->
<!DOCTYPE html>
<html>
<head>
<title><%= full_title(yield(:title)) %></title>
|
個別のページタイトルをprovide
をつかって伝える。
1
2
|
<% provide(:title, " Login") %>
<h1>Login</h1>
|
See Also