aboutsummaryrefslogtreecommitdiff
path: root/content/blog/2008-9-27-highlight-link-based-on-current-page-in-rails.markdown
diff options
context:
space:
mode:
authorJulio Capote <jcapote@gmail.com>2023-01-24 03:20:47 +0000
committerJulio Capote <jcapote@gmail.com>2023-01-24 03:20:47 +0000
commitf24f2d15275961f1c0144e68fde75a60aeaaa165 (patch)
tree38be1626f3ade436fbd17eadb2753fa2f0effb37 /content/blog/2008-9-27-highlight-link-based-on-current-page-in-rails.markdown
parentbf04383b34c4a4fdfe239de2805a30a051921002 (diff)
downloadcapotej.com-f24f2d15275961f1c0144e68fde75a60aeaaa165.tar.gz
move to bear theme
Diffstat (limited to 'content/blog/2008-9-27-highlight-link-based-on-current-page-in-rails.markdown')
-rw-r--r--content/blog/2008-9-27-highlight-link-based-on-current-page-in-rails.markdown30
1 files changed, 30 insertions, 0 deletions
diff --git a/content/blog/2008-9-27-highlight-link-based-on-current-page-in-rails.markdown b/content/blog/2008-9-27-highlight-link-based-on-current-page-in-rails.markdown
new file mode 100644
index 0000000..701b716
--- /dev/null
+++ b/content/blog/2008-9-27-highlight-link-based-on-current-page-in-rails.markdown
@@ -0,0 +1,30 @@
+---
+title: "Highlight link based on current page in rails"
+date: 2008-09-27T19:47:00Z
+comments: false
+url: /post/52081481/highlight-link-based-on-current-page-in-rails
+tags:
+---
+
+
+
+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.
+<!--more-->
+First, define a helper:
+
+```ruby
+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:
+
+```ruby
+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 `is_active?` returns `nil` (because its not the current page), `link_to` outputs nothing as its class (not `class=””` as you might expect).