views:

21

answers:

2

My app has a navigation bar with options:-
"create post", "Show posts owned by me", "Show All posts"
But of I navigate to the page "show posts owned by me", the navigation bar should no longer display the option "show posts owned by me". Is the any api such as current_url_path so that I can compare current_url_path api's output with "desired_url_check_path". and modify the view output accordingly.

A: 

Hey Saran. Yes, this is a helper I put in my application_helper.rb :

def main_nav_select(name, url)
  url = params[:q].blank? ? url : "#{url}?q=#{params[:q]}"
  if current_page? url
    content_tag(:li, "#{link_to(name, url)}", :class => 'selected')
  else
    content_tag(:li, "#{link_to(name, url)}")
  end
end

The real catch here is curent_page? url

I implement it like so :

= main_nav_select 'Main Page', admin_banners_path
Trip
+1  A: 

There is the link_to_unless_current function:

<%=
   link_to_unless_current("Show posts owned by me", { :controller => "posts", :action => "index" }) do
      # Whatever code you want to occur
   end
%>

http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to_unless_current

You should also look at the link_to_unless function.

http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to_unless

Laz