Domanda

Mi piacerebbe il modo canonico per farlo. Le mie ricerche su Google sono diventate brevi. Ho un modello ActiveRecord che dovrebbe essere mappato su un database diverso rispetto al resto dell'applicazione. Vorrei salvare anche le nuove configurazioni nel file database.yml.

Capisco che deve essere chiamato Esta_Connection, ma non è chiaro dove. Ecco cosa ho ottenuto finora e non funziona:

class Foo < ActiveRecord::Base
    establish_connection(('foo_' + ENV['RAILS_ENV']).intern)
end
È stato utile?

Soluzione

Inoltre, è una buona idea sottoclasse il modello che utilizza database diversi, come ad esempio:

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

E nel tuo modello

class Foo < AnotherBase
end

È utile quando è necessario aggiungere modelli successivi che accedono allo stesso, un altro database.

Altri suggerimenti

Eh. Avevo ragione! Più chiaramente:

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

Ottimo post su pragedave.pragprog.com .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top