2008-09-26 29 views
13

我想要規範的方式來做到這一點。我的Google搜索結果不足。我有一個ActiveRecord模型應該映射到與應用程序其餘部分不同的數據庫。我想將新的配置存儲在database.yml文件中。如何最好地處理與ActiveRecord的每模型數據庫連接?

我明白,應該調用establish_connection,但不清楚在哪裏。這是我到目前爲止,它不起作用:

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

回答

21

而且,這是一個好主意,子類,使用不同的數據庫,如模型:

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

而且在模型

class Foo < AnotherBase 
end 

當你需要添加後續它是有用的訪問相同的模型,另一個數據庫。

5

嘿。我是對的!更乾淨地:

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

好帖子at pragedave.pragprog.com

相關問題