rails 项目如何根据页面设置 菜单样式为active

在appliction_helper 里设置 一个方法

def is_active?(controller_n, action_n)
    is_act = false
    is_index= false
    #除了new action 其它的action 都让index 菜单active
    is_index ||= (controller.action_name=="edit"||controller.action_name=="update"||
      controller.action_name=="destory"||controller.action_name=="show")&&action_n=="index"
    is_act ||= (controller_n == controller.controller_name && (action_n==controller.action_name||is_index))
  end

def add_is_active_class(controller_n, action_n, class_n="list-group-item list-group-item-action")
     if is_active?(controller_n, action_n)
       "class=\"#{class_n} active\" aria-current=\"true\"".html_safe
     else
       "class=\"#{class_n}\"".html_safe
     end
  end

因为 我的菜单只有index 页面和 new的页面 ,所以把update 和edit show等其它action 都归到index里面去。

如何使用呢?

在菜单view里 这样调用就可以了

<a <%=add_is_active_class("roles","index")%>  href="<%= admin_roles_path %>">角色管理</a>

  <a <%=add_is_active_class("roles","new")%>  href="<%= new_admin_role_path %>">添加角色</a>

比如这个 两个菜单,就这样可以了。

 

上一篇:qt 使用属性设置替换样式,为无setstylesheet接口的的action设置样式


下一篇:Python入门综合应用---名片管理系统