如何最好地处理与ActiveRecord的每个模型数据库连接?

我希望以规范的方式来做到这一点。 我的谷歌搜索已经缩短了。 我有一个ActiveRecord模型应该映射到不同于应用程序其余部分的数据库。 我想将新配置存储在database.yml文件中。

我知道应该调用establish_connection,但是不清楚在哪里。 这是我到目前为止所得到的,它不起作用:

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

此外,使用不同数据库的子模型是一个好主意,例如:

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

在你的模型中

 class Foo < AnotherBase end 

当您需要添加访问另一个数据库的后续模型时,它非常有用。

嘿。 我是正确的! 更干净:

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

pragedave.pragprog.com上的精彩post 。