如何最好地使用ActiveRecord处理每个模型的数据库连接?
时间:2020-03-06 14:47:57 来源:igfitidea点击:
我想要规范的方式来做到这一点。我的Google搜索不足。我有一个ActiveRecord模型,该模型应该映射到与应用程序其余部分不同的数据库。我也想将新配置存储在database.yml文件中。
我知道应该调用Establishment_connection,但不清楚在哪里。这是到目前为止我得到的,但它不起作用:
class Foo < ActiveRecord::Base establish_connection(('foo_' + ENV['RAILS_ENV']).intern) end
解决方案
嘿。我是正确的!更干净:
class Foo < ActiveRecord::Base establish_connection "foo_#{ENV['RAILS_ENV']}" end
pragedave.pragprog.com上的好帖子。
同样,最好对使用不同数据库的模型进行子类化,例如:
class AnotherBase < ActiveRecord::Base self.abstract_class = true establish_connection "anotherbase_#{RAILS_ENV}" end
并在模型中
class Foo < AnotherBase end
当我们需要添加访问同一数据库的后续模型时,此功能很有用。