アパートメントgemを使ってマルチテナンシーアプリを作っています。私はそれをすべてセットアップしており、すべてが期待どおりに機能しています。また、Rails Internationalization (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 のリストに Translation モデルを含めることでうまくいくはずだと考えていましたが、どこかで何かが間違っているようです。手がかりはありますか?ありがとう