Как добавить еще элемент к nav_link на current_page?
У меня есть несколько статических страниц в меню навигации. Я хочу добавить больше элемента к элементу, который отображается в данный момент.
навигация по макету представления /adminzor.html.erb
<ul class='main-nav'>
<%= nav_link 'Dashboard', adminzor_path %>
</ul>
на application_helper.rb
def nav_link(link_text, link_path)
class_name = current_page?(link_path) ? 'active' : ''
content_tag(:li, :class => class_name) do
link_to link_text, link_path
end
end
и вывод
<ul class='main-nav'>
<li class="active">
<a href="/adminzor">Dashboard</a>
</li>
</ul>
потому что я использую помощник nav_link с компонентом nav в Bootstrap Twitter, который предпочитает оборачивать ссылки внутри тегов li, а класс "active" применять к внешнему li. и я добавляю некоторый элемент на вид, такой как
<%= nav_link adminzor_path, :class => "light" do %>
<div class="ico"><i class="icon-home icon-white"></i></div>
Dashboard
<% end %>
и помощник
def nav_link(link_text, link_path)
class_name = current_page?(link_path) ? 'active' : ''
content_tag(:li, :class => class_name) do
link_to link_path do
link_text
end
end
end
но ошибка
ArgumentError in Adminzor/dashboards#index
Showing c:/Sites/zionrails/app/views/layouts/adminzor.html.erb where line #44 raised:
wrong number of arguments (3 for 2)
я хочу выводить такие как
<ul class='main-nav'>
<li class="active">
<a href="/adminzor" class="light">
<div class="ico">
<i class="icon-home icon-white"></i>
</div>Dashboard
</a>
</li>
</ul>
Есть ли другие решения? Спасибо
2 ответа
Решение
решена
application_helper.rb
def is_active?(link_path)
if current_page?(link_path)
"active"
else
""
end
end
и на layout/adminzor.html.erb, таких как
<li class="<%= is_active?(adminzor_path) %>">
<%= link_to adminzor_path, :class => 'light' do %>
<div class="ico"><i class="icon-home icon-white"></i></div>
Dashboard
<% end %>
</li>
def menu_link(link_text, icon_type, link_path)
class_name = current_page?(link_path) ? 'active' : ''
content_tag(:li, :class => class_name) do
link_to link_path do
content_tag(:i, '', :class => icon_type) + link_text
end
end
end
И звонок:
<%= menu_link('My lists', 'icon-list', user_lists_path(@user)) %>