Ruby Locales因页面导航而迷失方向

时间:2012-07-19 17:14:38

标签: html ruby-on-rails ruby ruby-on-rails-3 locale

所以我对不同的网址(区域设置)有不同的页面。我的问题是当我从一个页面导航到下一个页面时,默认网址会出现,您会看到默认网站不是特定于初始网址请求的网站。

所以基本上我最初访问

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

在我的应用程序的第一页上,俄罗斯网站出现了。当我导航到下一页时,它会回到

 htttp://localhost:3000 

并加载此页面。我不知道为什么。有人知道吗?

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

我做到了这一点。

感谢。

1 个答案:

答案 0 :(得分:2)

您需要在会话中保留区域设置;否则信息将在请求之间丢失,就像您经历过的那样。做这样的事情:

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

这会将@locale设置为params中的任何内容,或者会话中的任何内容,或者default_locale是什么,然后根据它设置会话和I18n语言环境。