Rails link to current page and passing parameters to it

Posted by Faisal on Stack Overflow See other posts from Stack Overflow or by Faisal
Published on 2010-03-30T07:50:59Z Indexed on 2010/03/30 7:53 UTC
Read the original article Hit count: 659

Filed under:
|

I am adding I18N to my rails application by passing the locale using url params. My urls are looking like http://example.com/en/users and http://example.com/ar/users (for the english and arabic locales respectively).

In my routes file, I have defined my routes with a :path_prefix option:

map.resources :users, :path_prefix => '/:locale'

And locale is being set using a before_filter defined in ApplicationController

def set_locale
    I18n.locale = params[:locale]
end

I also defined ApplicationController#default_url_options, to add locale to all urls generated by the application:

def default_url_options(options={})
    {:locale => I18n.locale}
end

What I want is to add a link in the layout header (displayed in all pages) that would link to the same page but with the other locale.

For instance, if I am browsing the arabic locale, I want a "English" link in the header, that will redirect me back to my current page, and set the locale to english. Is there a way to do this in rails?

© Stack Overflow or respective owner

Related posts about ruby-on-rails

Related posts about i18n