※本サイトで紹介している商品・サービス等の外部リンクには、アフィリエイト広告が含まれる場合があります。
view表示に関わるコードはhtmlに書かない
前回、viewにrubyのコード(if文)を埋め込んで、viewの切り替えができるようになった
ただ、viewにrubyのコードを書くことは推奨されていない
かつ、コントローラーに分岐を書くこともできない
その解決策として、今回は「helper」に処理を書いていく
helperにviewの処理を書く
helperとは、viewを拡張するために使うもの
app/helpers/tabs_helper.rbを作る
名前は「●●.helper」とするのが決まり
helperではmodule
と書き始める
module TabsHelper
end
ファイル名とあわせてtabs_helperならTabsHelper
とするのが決まり
viewに書いていたコード#{'active' if current_page?(●●_path)}"
について、helperで書き直す
module TabsHelper
def add_active_class(path)
'active' if current_page?(path)
end
end
定義したadd_active_class
を_tab.html.hamlに埋め込む
.tabs
.tabs_item{class: "#{add_active_class(root_path)}"}
= link_to '新着記事一覧', root_path
.tabs_item{class: "#{add_active_class(timeline_path)}"}
= link_to 'タイムライン', timeline_path
- helperで定義されたメソッドは勝手に読み込まれ、viewの中でいつでも使える
- viewで使えるメソッドは基本、helperでも使える
#DAY4