我有一个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,...)将仅由此模型使用。
谢谢
答案 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?