我已经做了一个小助手class="selected".它主要current_page?用于调查当前路径是否是当前菜单项,并选择它.
module MenuHelper
#renders menu items and emphasizes current menu item
def topmenu
pages = {
"products" => admin_products_path,
"categories" => admin_categories_path,
"catalogs" => admin_catalogs_path,
"sales channels" => admin_sales_channels_path
}
pages.map do |key, value|
classnames = %( class="current") if current_page?(value)
"<li#{classnames}>#{link_to(key, value)}</li>"
end
end
end
Run Code Online (Sandbox Code Playgroud)
在/layouts/application.html.erb中:
<ul class="topmenu">
<%= topmenu %>
</ul>
Run Code Online (Sandbox Code Playgroud)
我的方法存在很大的缺陷.选择/admin/catalogs像魅力的工作.但是任何子页面都没有(/admin/catalogs/1等等)
我认为我的方法可能因current_page?方法的局限性而存在缺陷
你有什么想法我应该如何增强这个脚本来接受类似的网址,或者有更聪明的方法来实现它?
一种简单的链接方式:
def current_link_to label, path
link_to label, path, class: (current_page?(path) ? "active" : nil)
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5000 次 |
| 最近记录: |