0

私はresqueをかなり快適に使用していますが、次のシナリオでは

私のperformメソッドの1つで

class A < ActiveRecord::Base
  def self.perform
    B.something
  end
end

class B < ActiveRecord::Base
  def self.something
   l = Misc.get_locale
    ....
    ....
  end
end

class Misc
  def self.get_locale
    return I18n.locale
  end
end

問題は、アプリケーション構成で次のように:us_en(またはその他)に設定した場合でも、常にI18n.localeを:enとして返すことです。

config.i18n.default_locale = :us_en
config.i18n.locale = :us_en

RailsモデルではなくクラスからI18n.localeを読んでいるからですか?それとも他の理由によるものですか?

4

1 に答える 1

0

resque が Rails の設定を読み取っていない可能性が高いと思います。

これをイニシャライザで設定してみることができます(これは読み取られるべきだと思います)。

config/initalizers/i18n.rb:

I18n.default_locale = 'en-US'
I18n.locale = 'en-US'

補足として、言語コードは言語を識別するためのbcp47標準の地域コードの前に最初に来ます (ただし、私は肛門です!)。

于 2012-09-12T00:30:52.523 に答える