Frage

Ich mag den kanonischen Weg, dies zu tun. Mein Google-Suchanfragen sind zu kurz kommt. Ich habe ein Activerecord-Modell, das zu einer anderen Datenbank als der Rest der Anwendung abbilden sollte. Ich möchte auch die neuen Konfigurationen in der database.yml Datei speichern.

Ich verstehe, dass establish_connection genannt werden soll, aber es ist nicht klar, wo. Hier ist, was ich so weit, und es funktioniert nicht:

class Foo < ActiveRecord::Base
    establish_connection(('foo_' + ENV['RAILS_ENV']).intern)
end
War es hilfreich?

Lösung

Es ist auch eine gute Idee, Ihr Modells zu Unterklasse, die verschiedene Datenbank verwendet, wie zum Beispiel:

class AnotherBase < ActiveRecord::Base
  self.abstract_class = true
  establish_connection "anotherbase_#{RAILS_ENV}"
end

Und im Modell

class Foo < AnotherBase
end

Es ist sinnvoll, wenn Sie nachfolgende Modelle hinzufügen müssen, die den gleichen Zugriff auf eine andere Datenbank.

Andere Tipps

Heh. Ich lag richtig! Mehr sauber:

class Foo < ActiveRecord::Base
    establish_connection "foo_#{ENV['RAILS_ENV']}"
end

Große Post bei pragedave.pragprog.com .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top