独立的 ruby​​——如何从database.yml加载不同的环境

2024-06-30

我有一个修改数据库中记录的后台进程。模型使用如下方式连接到数据库:

dbconfig = YAML::load(File.open('database.yml'))
ActiveRecord::Base.establish_connection(dbconfig["development"])
class Clcar < ActiveRecord::Base
 ....
end

所有模型类的顶部都有这些行。

我同意这是一个糟糕的做法。

  1. 有没有更好的方法来连接到模型类?如何将连接传递给模型?
  2. 我希望能够在不同的环境(例如“生产”)中运行我的后台进程。

我该如何实现这一目标?


我会在后台进程开始时设置一次连接。一旦建立连接一次,所有模型都将正常工作。

您的连接建立代码将如下所示:

@environment = ENV['RACK_ENV'] || 'development'
@dbconfig = YAML.load(File.read('config/database.yml'))
ActiveRecord::Base.establish_connection @dbconfig[@environment]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

独立的 ruby​​——如何从database.yml加载不同的环境 的相关文章

随机推荐