Highlight link based on current page in rails
This is common pattern in website navigation, where it highlights the link (usually by setting
class=”active”) that took you to the current page while you are on that page.
First, define a helper:
def is_active?(page_name) "active" if params[:action] == page_name end
Then call it in your link_to’s in your layout as such:
link_to 'Home', '/', :class => is_active?("index") link_to 'About', '/about', :class => is_active?("about") link_to 'contact', '/contact', :class => is_active?("contact")
This effect is achieved due to how link_to handles being passed
nil for its
:class, so when
nil (because its not the current page),
link_to outputs nothing as its class (not
class=”” as you might expect).