よくあるこんな感じのナビゲーションバーで
sample.html.erb
<div class="nav-collapse collapse">
<ul class="nav">
<li class="active"><a href="#">Page1</a></li>
<li><a href="#">Page2</a></li>
<li><a href="#">Page3</a></li>
</ul>
</div>
表示しているページのli
要素にclass="active"
を入れたい時
シンプルな方法がないかと色々試した結果、以下のヘルパーを追加し、
config.rb
helpers do
def navi_li(text, url)
class_name = 'active' if url == current_page.url
content_tag(:li, link_to(text, url), :class => class_name)
end
end
ナビゲーションバー側で呼びだすとスッキリした。
sample.html.erb
<div class="nav-collapse collapse">
<ul class="nav">
<%= navi_li("Page1", "/page1/") %>
<%= navi_li("Page2", "/page2/") %>
<%= navi_li("Page3", "/page3/") %>
</ul>
</div>
こちらで色々な実現方法が議論されてました。
http://forum.middlemanapp.com/t/active-navigation/584/4