Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails I18n未使用单元gem轨道加载翻译_Ruby On Rails_Multi Tenant_Ruby On Rails 5_Apartment Gem - Fatal编程技术网

Ruby on rails I18n未使用单元gem轨道加载翻译

Ruby on rails I18n未使用单元gem轨道加载翻译,ruby-on-rails,multi-tenant,ruby-on-rails-5,apartment-gem,Ruby On Rails,Multi Tenant,Ruby On Rails 5,Apartment Gem,我正在使用创建一个多租户应用程序。我把一切都安排好了,一切正常。我还使用Rails国际化(I18n)和活动记录后端来存储翻译。我当前的设置 翻译表 class CreateTranslations < ActiveRecord::Migration[5.0] def change create_table :translations do |t| t.string :locale t.string :key t.text :value

我正在使用创建一个多租户应用程序。我把一切都安排好了,一切正常。我还使用Rails国际化(I18n)和活动记录后端来存储翻译。我当前的设置

翻译表

class CreateTranslations < ActiveRecord::Migration[5.0]
  def change
    create_table :translations do |t|
      t.string :locale
      t.string :key
      t.text :value
      t.text :interpolations
      t.boolean :is_proc, default: false

      t.timestamps
    end
  end
end
在我的翻译表中,我有英语(默认)和挪威语的翻译。在主域名上,一切正常,在英语和挪威语之间切换,但一旦我加载租户,所有翻译都会丢失。控制台中的演示:

> Apartment::Tenant.switch! # switch to main tenant
> I18n.locale = :en # use English translations
> I18n.t('home.members_label')
  => "Show Members"

> Apartment::Tenant.switch! "elabs" # switch to a different tenant
> I18n.t('home.members_label')
  => "translation missing: en.home.members_label"

我不知道为什么在租用的环境中会丢失翻译。我想把翻译模型放在被排除的模型列表中应该可以做到这一点,但似乎有些地方出了问题。有什么线索吗?谢谢

翻译模型实际上是在
I18n::Backend::ActiveRecord::Translation
中定义的,因此您可能需要在模型文件夹中添加一个扩展该模型的模型,或者尝试执行以下操作,看看是否有效:

config.excluded_models = %w{ User Workspace I18n::Backend::ActiveRecord::Translation }
或许

Translation = I18n::Backend::ActiveRecord::Translation
config.excluded_models = %w{ User Workspace Translation }
Translation = I18n::Backend::ActiveRecord::Translation
config.excluded_models = %w{ User Workspace Translation }