如何从控制器访问配置标志(从config / environments / development.rb设置)?

时间:2012-04-02 20:49:25

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

我正在尝试使用“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。 except子句一直被调用。我一直试图弄清楚这一点,假设由于config / environments / development.rb文件,该标志会自动设置为true。

我通过在除非子句上方添加标志声明来测试,这似乎影响是否调用了除非子句。所以我猜这个标志没有在config / environments / development.rb中设置,或者从app / controllers / application_controller.rb里面看不到它

任何人都知道问题是什么?谢谢!

1 个答案:

答案 0 :(得分:2)

环境/ * .rb中引用的配置对象可通过

访问
Rails.application.config