我正在创建一个我想在我的 Rails 应用程序中使用的机架中间件。基本上,我需要将匹配特定 url 的请求记录到我的数据库中。为此,我需要将数据库配置传递给我的中间件,以便它可以与数据库建立连接。我正在尝试做:-
db_yml = Rails.root.join('config/database.yml')
db_config = YAML.load(db_yml.read)[Rails.env]
但这给出了一个错误
config/application.rb:40:in
<class:Application>': undefined method
read' for # (NoMethodError)
如果我添加 byebug 并在 byebug 控制台中运行它,它工作正常。我无法找出原因。我想做以下事情:-
- 在将数据库配置作为参数传递给我的中间件之前,我需要读取和修改数据库配置。
- 我想读取请求 url 的域。我们正在使用Apartment gem,我们的模式名称将是域名。