current_page?

current_page?(options)
public
True if the current request URI was generated by the given options.
Examples
Let’s say we’re in the http://www.example.com/shop/checkout?order=desc action.
current_page?(action: 'process') # => false current_page?(controller: 'shop', action: 'checkout') # => true current_page?(controller: 'shop', action: 'checkout', order: 'asc') # => false current_page?(action: 'checkout') # => true current_page?(controller: 'library', action: 'checkout') # => false current_page?('http://www.example.com/shop/checkout') # => true current_page?('/shop/checkout') # => true
Let’s say we’re in the http://www.example.com/shop/checkout?order=desc&page=1 action.
current_page?(action: 'process') # => false current_page?(controller: 'shop', action: 'checkout') # => true current_page?(controller: 'shop', action: 'checkout', order: 'desc', page: '1') # => true current_page?(controller: 'shop', action: 'checkout', order: 'desc', page: '2') # => false current_page?(controller: 'shop', action: 'checkout', order: 'desc') # => false current_page?(action: 'checkout') # => true current_page?(controller: 'library', action: 'checkout') # => false
Let’s say we’re in the http://www.example.com/products action with method POST in case of invalid product.
current_page?(controller: 'product', action: 'index') # => false


current_action? and current_controller?
I use them in link_unless_current_controller helper.
def current_action?(options) url_string = CGI.escapeHTML(url_for(options)) params = ActionController::Routing::Routes.recognize_path(url_string, :method => :get) params[:controller] == @controller.controller_name && params[:action] == @controller.action_name end def current_controller?(options) url_string = CGI.escapeHTML(url_for(options)) params = ActionController::Routing::Routes.recognize_path(url_string, :method => :get) params[:controller] == @controller.controller_name end


active_link_to helper gem
You should also have a look at github.com/twg/active_link_to if you need an ‘active’ class on your links.