我可以将Rails控制器方法限制在开发环境中吗?

Sum*_*Guy 2 ruby-on-rails

我有一个Rails应用程序,可以生成每周报告并通过电子邮件发送出去.出于安全性和便利性的原因(不想维护Web界面),我不希望生产应用程序具有任何类型的Web界面.

但是,我确实有一个基本的数据库Web界面,我想在我的开发环境中继续进行调试等.

除非我在开​​发rails环境中,否则有一种简单的方法可以使控制器方法无效?

Aar*_*tad 12

一个好的方法是:

class MyController < ActionController::Base
  before_filter :restrict_to_development, :only => [:user_report]

  def index
    ...
  end

  def user_report
    ...
  end

  protected
    # this method should be placed in ApplicationController
    def restrict_to_development
      head(:bad_request) unless Rails.env.development?
    end
end
Run Code Online (Sandbox Code Playgroud)

  • 在更高版本的rails中,不推荐使用RAILS_ENV.相反,`RAILS_ENV =='开发"`使用新的Rails方法,比如`Rails.env.development?`. (4认同)