2012-04-12 7 views
2

Ich habe diese beautiful site verfolgt, um Internationalisierung in meiner Website zu erstellen.Rails 3.1 Erneutes Laden einer Seite mit einem anderen Gebietsschema?

Ich kann jedoch nicht herausfinden, wie Sie eine Seite mit einem anderen Gebietsschema neu laden, wenn ein Benutzer auf eine Sprachschaltfläche klickt.

Beispiel: Wenn der Benutzer hier:

/es/events/14 

, wenn der Benutzer trifft englische Sprache Neuladen

/en/events/14 

Dies ist die Ansicht:

%li= link_to "eu", change_locale_path(:locale => "eu") 
%li= link_to "es", change_locale_path(:locale => "es") 
%li= link_to "en", change_locale_path(:locale => "en") 
%li= link_to "fr", change_locale_path(:locale => "fr") 

Mit dieser Methode in ApplicationController

def change_locale 
if current_user 
    current_user.locale = params[:locale] 
    current_user.save 
else 
    I18n.locale = params[:locale] 
end 
redirect_to root_url (this is temporal) 
end 

Was sollte ich anstelle von redirect_to root_url haben, um die Seite neu zu laden?

+0

Sie zur vorherigen Seite zurückkehren, sehen http://stackoverflow.com/questions/4652084/ruby-on-rails-how-do-you-get-the-previous-url/ 8801313 # 8801313 – gayavat

+0

Ich habe das vorher versucht, aber soweit ich mich erinnerte, lädt die Seite mit dem alten Gebietsschema, weil das Gebietsschema in der URL ist –

+0

versuchen URL zu parsen und ändern [: locale], siehe http: // stackoverflow. com/questions/916067/how-do-i-leicht-parse-a-url-mit-parameter-in-a-rails-test – gayavat

Antwort

3
- [:ru, :ua, :en].each do |locale| 
    %li= link_to locale, params.merge(locale: locale) 
+0

das ist es! Vielen Dank –

Verwandte Themen