Come gestire al meglio le connessioni al database per modello con ActiveRecord?
-
02-07-2019 - |
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
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