0

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

问题:是否可以像这样将数据库名称作为参数传递给建立连接?

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

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

谢谢

4

1 回答 1

0

在 rails 2.3.x 中有

来自 ActiveRecord::Base 的 database_name。

这看起来类似于如何在 Ruby on Rails 中动态更改所有模型的 Active Record 数据库?

于 2013-01-26T23:41:34.333 回答