Ich mache eine Multi-Tenancy-App mit der apartment gem. Ich habe alles eingerichtet und alles funktioniert wie erwartet. Ich verwende auch Rails Internationalisierung (I18n) mit aktivem Record-Backend, um Übersetzungen zu speichern. Meine aktuelle SetupI18n keine Übersetzungen mit Apartment Gem Schienen laden
Translation Table
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 Konfiguration
Ich habe über alle Mieter so seine globale das Übersetzungsmodell auf die Liste der ausgeschlossenen Modelle hinzugefügt
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
In meiner Übersetzungstabelle habe ich Übersetzungen für sowohl Englisch (Standard) als auch Norwegisch. Auf der Hauptdomain funktioniert alles erwartungsgemäß zwischen Englisch und Norwegisch, aber alle Übersetzungen fehlen, wenn ich einen Mieter lade. Demo in der Konsole:
> 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"
Ich bin nicht sicher, warum Übersetzungen in einer vermieteten Umgebung fehlen. Ich dachte mir, dass das Übersetzungsmodell in der Liste der excluded_models den Trick machen sollte, aber es scheint irgendwo etwas falsch zu sein. Irgendwelche Hinweise? Dank