Какой лучший подход имеет дело с class = "active" проблемы с Rails? Я нашел, как справиться с этим для отдельных ссылок, но когда классы должны быть настроены на «активные» в разных частях шаблона, как с этим бороться? Вот мой код:рубин на рельсах активный элемент в многоуровневом меню
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>
То есть, мне нужно проверить, если я нахожусь в определенной части структуры URL-адрес, и вывод li класс = "активный" в случае этого. В противном случае просто выводя элемент li без класса. Я использую меню; MetisMenu и должен установить этот класс, поэтому правильный раздел будет расширен.
Мой код работает, но это кажется ужасным неправильным способом сделать это. Был бы очень рад, если кто-то может дать понять, как это сделать правильно!