2012-04-12 2 views
2

나는이 사이트를 통해 내을 국제화하고자합니다.rails 3.1 다른 로케일로 페이지를 새로 고침 하시겠습니까?

그러나 사용자가 언어 버튼을 클릭 할 때 다른 로케일로 페이지를 다시로드하는 방법을 알 수 없습니다.

예 : 사용자가 여기 경우

%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") 

이 방법에있어서 :

사용자가 영어 다시로드 안타
/es/events/14 

/en/events/14 

에 뷰입니다 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 

redirect_to root_url 대신 페이지를 새로 고침하려면 어떻게해야합니까?

+0

http://stackoverflow.com/questions/4652084/ruby-on-rails-how-do-you-get-the-previous-url/ 8801313 # 8801313 – gayavat

+0

로케일이 있기 때문에 이전에 시도했지만, 로케일이 URL에 있기 때문에 이전 로케일로 페이지를로드하는 것을 기억했습니다. –

+0

url을 구문 분석하고 params [: locale]을 변경하려고합니다. http : // stackoverflow를 참조하십시오. com/questions/916067/how-do-i-easy-parse-a-url-with-a-rails-test – gayavat

답변

3
- [:ru, :ua, :en].each do |locale| 
    %li= link_to locale, params.merge(locale: locale) 
당신은, 이전 페이지로 돌아가 볼 수 있습니다
+0

그것이 맞다! 감사 –

관련 문제