3
我正在製作一個使用apartment gem的多租戶應用程序。我已經設置好了,一切都按預期工作。我還使用帶有活動記錄後端的Rails Internationalization(I18n)來存儲翻譯。我的當前設置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.rb配置
我已經在所有住戶增加了翻譯模型來排除模型的列表,以便其全球
Apartment.configure do |config|
# Add any models that you do not want to be multi-tenanted, but remain in the global (public) namespace.
# A typical example would be a Customer or Tenant model that stores each Tenant's information.
#
config.excluded_models = %w{ User Workspace Translation }
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"
我不確定譯文在租用環境中時爲何缺失。我正在弄清楚在excluded_models列表中的翻譯模型應該做的伎倆,但似乎有什麼地方是錯的。任何線索?由於