haml を用いたビューの一部を再利用できるように、 block を渡すようなヘルパーが作れないか
内容としましては、「Rails 4.0 環境において、 haml を用いた view のある部分を helper 化したいのですが、うまくいかない」です。
%li{class: "#{current_page?(:root) ? : 'active' : ''}"}
= link_to :root do
= fa_icon 'home'
ホーム
%li{class: "#{current_page?(:blogs) ? : 'active' : ''}"}
= link_to :blogs do
= fa_icon 'book'
記事
li
タグでリストしつつ、その配下にある a
タグの path が current_page
と同じだった場合は、 active
という class
を li
タグへ与えるのですが、この li
タグ部分を全てヘルパーで表現したいです。
- ヘルパーには、 path と block を与えたい(もしくは、font-awesome 用の引数と
a
タグのtitle
部分も) つまり、以下のどちらかのようなイメージで使用したい
= li_helper(:root) do = link_to :root do = fa_icon 'home' ホーム
または
= li_helper(:root, 'home', 'ホーム')
いずれも出力イメージは、 root ページで出力したとして、
%li.active
= link_to :root do
= fa_icon 'home'
ホーム
となって欲しいです。
どのように helper を定義したら実現できるでしょうか。