3

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

Antwort

0

Das Translation Modell ist tatsächlich in I18n::Backend::ActiveRecord::Translation definiert, so ist es möglich, die Sie haben werden entweder fügen Sie ein Modell, das die Ordner im Modell erweitert oder versuchen Sie folgendes tun und sehen, ob das funktioniert:

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

oder vielleicht

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