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