Rails 3如果路径匹配root:to path,则应用CSS类

时间:2011-02-07 20:58:31

标签: ruby-on-rails-3 menu navigation helper selecteditem

我对ROR很新,我喜欢它,因为我开发了我的第一个应用程序。当我将格式应用于导航菜单时,我有一个与我的应用程序模板相关的问题。

是否可以检查url路径是否与root:to config.rb中设置的路径匹配?我有一个辅助方法,它返回字符串“current”,它添加了css类样式以突出显示所选的菜单项。只要我不在主页,帮助方法就可以正常工作。当我的网址是www.localhost:3000 / css当前类没有应用于Products链接,因为request_uri =“/”不等于“/ products”。当我在主页上时,我希望将css类“current”应用于Products菜单项。

我是否可以使用任何条件逻辑来获取根:路径并检查它是否与is_current的参数路径匹配?

这是我的代码:

routes.rb root:设置为指向产品索引视图

root:to =>的产品#索引'

application.html.erb

  • <%= link_to'Products',products_path,:class => is_current(products_path)%>
  • <%= link_to'Reports',reports_path,:class => is_current(reports_path)%>
  • application_helper.rb

    def is_current(path)
        if request.request_uri == path
            return 'current'
        end
    end
    

    非常感谢任何帮助。

    谢谢, bkasen

    2 个答案:

    答案 0 :(得分:9)

    这对你有用吗?

    if current_page? root_path
    

    了解更多信息:http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-current_page%3F

    答案 1 :(得分:2)

    如果我读得正确,你想要“onlink”css应用吗?因此,当用户在主页上时,主页图标是不同的颜色或其他东西。如果是这样,那么将其应用于标题部分或任何地方:

    <li><%= link_to_unless_current "Home", root_path, :class => "navLinks" do link_to "Home", root_path, :class => "navLinks", :id => "onlink" end %></li>

    • 我知道这是一个老问题,但它可能对其他人有用:)