Как лучше всего обрабатывать соединения с базой данных с помощью ActiveRecord?
Мне нужен канонический способ сделать это. Мои поисковые запросы Google оказались короткими. У меня есть одна модель ActiveRecord, которая должна отображаться в другой базе данных, чем остальная часть приложения. Я хотел бы также сохранить новые конфигурации в файле database.yml.
Я понимаю, что connection_connection следует вызывать, но не понятно где. Вот что я получил до сих пор, и он не работает:
class Foo < ActiveRecord::Base
establish_connection(('foo_' + ENV['RAILS_ENV']).intern)
end
Ответы
Ответ 1
Кроме того, рекомендуется подклассифицировать вашу модель, которая использует разные базы данных, например:
class AnotherBase < ActiveRecord::Base
self.abstract_class = true
establish_connection "anotherbase_#{RAILS_ENV}"
end
И в вашей модели
class Foo < AnotherBase
end
Это полезно, когда вам нужно добавить последующие модели, которые обращаются к одной и той же другой базе данных.
Ответ 2
Хех. Я был прав! Более чисто:
class Foo < ActiveRecord::Base
establish_connection "foo_#{ENV['RAILS_ENV']}"
end
Отличный пост на pragedave.pragprog.com.