在Rails中处理 class ="活动" 问题的最佳方法是什么? 我已经找到了如何处理单链接,但是当类必须设置为" active"在模板的不同部分,如何处理这个? 这是我的代码:
module AdminHelper
def nav_link(link_text, link_path)
class_name = current_page?(link_path) ? 'active' : nil
content_tag(:li) do
link_to link_text, link_path, :class => class_name
end
end
def active_section(section)
request.fullpath.start_with?(section)
end
end
在持有菜单的布局中:
<% if active_section('/superadmin') %>
<li class="active">
<% else %>
<li>
<% end %>
<a href="#"><i class="fa fa-asterisk fa-fw"></i> Superadmin <span class="fa arrow"></span></a>
<ul class="nav nav-second-level">
<%= nav_link 'Add Account', superadmin_new_account_path %>
<%= nav_link 'List Accounts', superadmin_list_accounts_path %>
</ul>
</li>
也就是说,我需要检查我是否在网址结构的特定部分,并输出 li class =&#34; active&#34; 以防万一。否则只输出没有类的 li 元素。我正在使用菜单; MetisMenu需要设置此类,以便扩展正确的部分。
我的代码可以运行,但这样做感觉很糟糕。 如果有人能够以正确的方式暗示如何做到这一点,那真的很高兴!
答案 0 :(得分:0)
我建议使用simple-navigation gem
答案 1 :(得分:0)
不是那个家伙&#39;,但是你有没有看过HAML?它使得条件分类变得更容易。它也读/看起来更干净。即。
%li{:class => ("active" if active_section('/superadmin'))}