Ruby中的“require if”

时间:2013-01-01 11:00:18

标签: ruby gem sinatra rack

以下是我在机架应用程序中的内容

#rb file
require 'pry'
class .....

#GemFile
group :development do
    gem "pry"
    gem "pry-nav"
end

当然,在生产中它会导致错误。怎么做一个“要求”?

3 个答案:

答案 0 :(得分:14)

require 'pry' if ENV['RACK_ENV'] == 'development'

答案 1 :(得分:3)

可能是你可以将它嵌入if块

根据文档Sinatra提供了一个环境变量 http://www.sinatrarb.com/intro#Environments

if development?
 require 'pry'
end

您需要使用它的任何地方。

这可能不是您可能只是疯狂猜测的确切解决方案

答案 2 :(得分:-1)

我建议在你的app中的Object或Kernel中编写这样的方法:

def require_pry
  require 'pry' if ENV['RACK_ENV'] == 'development'
end

之后,如果您的代码需要,可以调用require_pry。但是我怀疑为什么它不能由Bundler处理,Bundle.require将需要环境所需的所有宝石。