titleの設定
1. ページタイトルを設定したいviewページの冒頭に以下を設定
contact_forで:titleに任意の語句を入れ、yield(:title)に渡す。
content_for(:title, ':titleに入れたい語句') # contact_forではなくprovideでも可
2. application_helperにpage_titleメソッドを設定
# application_helper.rb def page_title(page_title = '') #page_titleの''内には引数で渡された語句が入る base_title = 'APP TITLE' # 三項演算子 → 条件1 ? 正しいとき : 正しくないとき page_title.empty? ? base_title : page_title + ' | ' + base_title end
例えばページタイトルを設定したいviewに
content_for(:title, 'aaaa')
と記載すると、以下のようなデータが渡される。
page_title => "aaaa"
そのため、page_title.empty?がfalseになり、後半のpage_title + ' | ' + base_titleが適応され、page_titleにはcontent_for→yeildで渡された'aaaa'が入る。
3. application_helperで設定したpage_titleメソッドを使用し、引数にcontact_forで設定した:titleを入れる。
# application.html.erb <head> <title><%= page_title(yield(:title)) %></title> ... </head>