开发者

Rails 3 Apply CSS class if path matches root:to path

开发者 https://www.devze.com 2023-02-08 21:58 出处:网络
I am very new to ROR and I love it so far as I develop my first app. I have a question related to my application template as I apply formatting to the nav menu.

I am very new to ROR and I love it so far as I develop my first app. I have a question related to my application template as I apply formatting to the nav menu.

Is it possible to check if a url path matches the root:to path set in config.rb? I have a helper method that returns the string "current" which adds the css class style to highlight the selected menu item. The helper method works fine as long as I'm not at the homepage. When I my url is www.localhost:3000/ the css current class is not applied to the Products link since the request_uri = "/" which doesn't equal "/products". I would like the css class "current" applied to the Products menu item when I'm on the homepage.

Is there any conditional logic I can use to get the root:to path and check if it matches the is_current's parameter path?

Here's my code:

routes.rb root:to setto point to the products index view

root :to => 'products#index'

application.html.erb

  • <%= link_to 'Products', products_path, :class => is_current(pr开发者_运维技巧oducts_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
    

    Any help would be greatly appreciated.

    Thanks, bkasen


    Would this work for you?

    if current_page? root_path
    

    for more info: http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-current_page%3F


    If I read correctly, you want "onlink" css applied? so that when the user is on the home page, the home icon is a different color or something. If so then apply this in your header partial or where ever:

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

    • I know this is an old question, but it may prove useful to someone else :)
    0

    精彩评论

    暂无评论...
    验证码 换一张
    取 消