2012-07-19 3 views
0

그래서 다른 URL (로케일)에 대해 다른 페이지가 있습니다. 내 문제는 한 페이지에서 다음 페이지로 이동할 때 기본 URL이 표시되고 초기 URL 요청과 관련없는 기본 사이트가 표시되는 것입니다.루비 로케일이 페이지 탐색으로 없어졌습니다.

그래서 기본적으로 내가 처음 러시아 사이트가 나오면 내 응용 프로그램의 첫 페이지

htttp://localhost:3000/?locale=ru 

에 액세스 할 수 있습니다. 다음 페이지로 이동하면

으로 이동하고이 페이지를로드합니다. 나는 이유를 모른다. 아무도 알겠습니까?

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

나는 이것을했다.

감사합니다.

답변

2

세션에 로캘을 유지해야합니다. 그렇지 않으면 경험 한 것처럼 요청간에 정보가 손실됩니다. 같은 것을 할 : 세션 및 그 기반으로 국제화 로케일을 모두 설정 한 후 세션, 또는 어떤 기본 언어 (default_locale)가있는 PARAMS, 또는 무엇이든의에 어떤의에 @locale을 설정합니다

class ApplicationController < ActionController::Base 
    before_filter :set_locale 

    private 

    def set_locale 
    @locale ||= params[:locale] || session[:locale] || I18n.default_locale 
    I18n.locale = session[:locale] = @locale 
    end 

end 

.

+0

당신은 스타입니다! – CodeGeek123

+0

감사하지만 한가지 질문이 있습니다. URL은 기본 URL로 돌아갑니다. 같은 것을 유지하도록 내가 바꿀 수있는 방법이 있습니까? – CodeGeek123

관련 문제