【问题标题】:How to access configuration flag (set from config/environments/development.rb) from a controller?如何从控制器访问配置标志(从 config/environments/development.rb 设置)?
【发布时间】:2012-04-03 06:04:14
【问题描述】:

我正在尝试仅在生产模式下使用“config.consider_all_requests_local”标志生成动态错误页面。

我已经使用以下代码设置了 config/environments/development.rb 文件:

config.consider_all_requests_local       = true

在 app/controllers/application_controller.rb 我添加了这一行。 (和 :render_error, :render_not_found 方法,我没有在下面包含)

unless config.consider_all_requests_local
       rescue_from Exception, :with => :render_error 
       rescue_from ActiveRecord::RecordNotFound, :with => :render_not_found
       rescue_from ActionController::RoutingError, :with => :render_not_found
       rescue_from ActionController::UnknownController, :with => :render_not_found
end

无论如何,在 application_controller.rb 中,该标志似乎始终为 false。 unless 子句一直被调用。我一直试图弄清楚这一点,假设由于 config/environments/development.rb 文件,该标志会自动设置为 true。

我通过在 unless 子句正上方添加标志声明进行测试,这似乎会影响 unless 子句是否被调用。所以我猜要么没有在 config/environments/development.rb 中设置标志,要么在 app/controllers/application_controller.rb 中不可见

有人知道问题出在哪里吗?谢谢!

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 deployment


    【解决方案1】:

    environments/*.rb 中引用的配置对象可由

    访问
    Rails.application.config
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-27
      • 1970-01-01
      • 1970-01-01
      • 2017-12-05
      • 1970-01-01
      • 1970-01-01
      • 2011-01-17
      • 1970-01-01
      相关资源
      最近更新 更多