Ruby on rails 访问模型或表时建立_连接
我正在尝试连接Rails应用程序中的两个数据库 我在RoR应用程序中创建了2个模型,用于2个不同数据库上的2个表 在访问表之前,我知道如何使用以下方法连接到其他数据库:Ruby on rails 访问模型或表时建立_连接,ruby-on-rails,ruby,ruby-on-rails-3,activerecord,activemodel,Ruby On Rails,Ruby,Ruby On Rails 3,Activerecord,Activemodel,我正在尝试连接Rails应用程序中的两个数据库 我在RoR应用程序中创建了2个模型,用于2个不同数据库上的2个表 在访问表之前,我知道如何使用以下方法连接到其他数据库: ActiveRecord::Base.establish_connection() 但我试图实现的是,每次调用该模型/表时自动设置到正确数据库的连接,因为我需要有不同的数据库 就像Rails控制器上的before_过滤器一样,我如何让我的Rails应用程序运行一个方法来建立如下连接: def set_database
ActiveRecord::Base.establish_connection()
但我试图实现的是,每次调用该模型/表时自动设置到正确数据库的连接,因为我需要有不同的数据库
就像Rails控制器上的before_过滤器一样,我如何让我的Rails应用程序运行一个方法来建立如下连接:
def set_database
ActiveRecord::Base.establish_connection({ :adapter => 'nuodb',:database => 'test_db',:host => 'localhost',:username => 'test_username',:password => 'test_password', :schema => 'TEST_SCHEMA'})
end
我希望每次调用模型时都运行此方法
我一直在查看ActiveModel::回调,但似乎找不到用于此的回调。您的所有模型都继承自ActiveRecord::Base。因此,在模型中可以直接使用建立_连接
# config/database.yml
development:
# first database configuration
development_sec:
# second database configuration
然后在您的模型中使用以下内容:
class MyModel < ActiveRecord::Base
establish_connection "#{Rails.env}_sec"
end
classmymodel
或考虑使用宝石般的
谢谢你这个MAU。它的实现非常简单,而且工作起来就像我希望的那样。