如何设置控制器的默认区域设置

问题描述 投票:0回答:2

是否可以在 Rails 中设置控制器的默认区域设置。假设应用程序支持不同的语言,例如 fr、nl、en、cn 等,并且我想使用“en”作为管理仪表板控制器的默认语言。请推荐

ruby-on-rails
2个回答
8
投票

只需使用

before_action
回调来设置默认区域设置。

class Admin::DashboardController
  before_action :set_default_locale

  # ...

  private
    def set_default_locale
      I18n.default_locale = :en
    end
end

但是需要注意的一件事是

I18n.default_locale
不是线程安全的,在一个控制器中设置它可能会对其他控制器产生副作用。


3
投票
before_action :set_locale
def set_locale
    I18n.locale = params[:locale] || I18n.default_locale
end

更多详细信息请参见 linkhttp://guides.rubyonrails.org/i18n.html

© www.soinside.com 2019 - 2024. All rights reserved.