在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>
比如这个 两个菜单,就这样可以了。