我有一个修改数据库中记录的后台进程。模型使用如下方式连接到数据库:
dbconfig = YAML::load(File.open('database.yml'))
ActiveRecord::Base.establish_connection(dbconfig["development"])
class Clcar < ActiveRecord::Base
....
end
所有模型类的顶部都有这些行。
我同意这是一种糟糕的做法。
- 有没有更好的方法来连接到模型类?如何将连接传递给模型?
- 我希望能够在不同的环境(比如“生产”)中运行我的后台进程。
我该如何实现?
最佳答案
我会在您的后台进程开始时设置一次连接。一旦建立连接,所有模型都将正常工作。
你的连接建立代码看起来像这样:
@environment = ENV['RACK_ENV'] || 'development'
@dbconfig = YAML.load(File.read('config/database.yml'))
ActiveRecord::Base.establish_connection @dbconfig[@environment]
关于ruby-on-rails - Standalone ruby -- 如何从database.yml加载不同环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5891529/