在Rails application.rb中将多个参数传递给Rack中间件

时间:2016-09-03 08:37:48

标签: ruby-on-rails ruby rack ruby-on-rails-5 rack-middleware

我正在创建一个Rack Middleware,我想在我的Rails App中使用它。基本上,我需要将与特定网址匹配的请求记录到我的数据库中。为了做到这一点,我需要将数据库配置传递给我的中间件,以便它可以与DB建立连接。我想做的是: -

<class:Application>': undefined method

但这是错误的

  

config / application.rb:40:in {{1}} read&#39; #(NoMethodError)

如果我添加byebug并在byebug控制台中运行它,它可以正常工作。我无法找出原因。我想做以下事情: -

  1. 我需要阅读&amp;在将数据库配置作为参数传递给我的中间件之前修改它。
  2. 我想阅读请求网址的域名。我们正在使用Apartment gem,我们的架构名称将是域名。
  3. 我关注了多篇文章here&amp; here。 我是Rails的新手,不知道好资源所以请帮助。 提前谢谢!

1 个答案:

答案 0 :(得分:1)

您应该使用:

db_yml = Rails.root.join('config/database.yml')
db_config = YAML.load(File.open(db_yml))[Rails.env]

Rails.root.join('config/database.yml')返回文件路径,即字符串。