Rails多个数据库

时间:2013-01-26 23:27:53

标签: ruby-on-rails ruby rails-activerecord

我有一个Rails应用程序(由于某种原因)需要连接到多个数据库。我知道我可以使用ActiveRecord :: Base.establish_connection,但问题是数据库名称可能是具有相同前缀的许多名称之一。 I.e db_001,db_002等。“001”,“002”号码将从控制器传递给模型,并基于当前的应用程序流程。

问题:是否可以将数据库名称作为参数传递给establish_connection,如下所示?

class Some < ActiveRecord::Base
 establish_connection ({
    :adapter  => "mysql2",
    :username => "name",
    :password => "pass"
    :database => "db_#{THE_PASSED_VALUE}"
 })
end

这些特定数据库(db_001,db_002,...)将仅由此模型使用。

谢谢

1 个答案:

答案 0 :(得分:0)

在rails 2.3.x中有

来自ActiveRecord :: Base的database_name。

这类似于How can I dynamically change the Active Record database for all models in Ruby on Rails?