我使用current_page?
检测当前页面和样式,链接方式如下:
<li class="snavitem <%= ' active' if current_page? countries_path %>">
现在,如果我们处于/countries
,那么这会将活动类添加到链接中,这将使其不同。但是当我们在countries/new
,countries/edit
这样的子页面时,如何设置这样的链接样式?
答案 0 :(得分:0)
在应用程序助手
中定义方法check_action
def check_action controller, action
return true if controller.eql?("countries") and (action.includes?("index") or action.includes?("edit") or action.includes?("new"))
end
在视图中
<li class="snavitem <%= ' active' if check_action(controller, controller.action_name) %>">
答案 1 :(得分:0)
这样简单的方式是这样的:
current_page?(controller: 'countries')
countries/ #=> true
countries/anything-here #=> true
答案 2 :(得分:0)
您可以使用request.fullpath
获取当前的完整路径
例如
<ul>
<% Contry.all.each do |c| %>
<li class="snavitem <%= is_active?(edit_contry_path(c)) %>">
<%= link_to "edit " + c.name, edit_contry_path(c) %>
</li>
<% end %>
</ul>
和application_helper.rb
def is_active?(link_path)
"active" if request.fullpath == link_path
end
阅读request.fullpath here