4

这是我的机架应用程序中的内容

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

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

当然,在生产中它会导致错误。如何制作一种“require if”?

4

3 回答 3

14
require 'pry' if ENV['RACK_ENV'] == 'development'
于 2013-01-01T11:03:40.023 回答
3

也许您可以将其嵌入到 if 块中

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

if development?
 require 'pry'
end

无论您需要在哪里使用它。

这可能不是您可能正在寻找的确切解决方案,只是一个疯狂的猜测

于 2013-01-01T11:14:08.833 回答
-1

我建议在您的应用程序的 Object 或 Kernel 中编写这样的方法:

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

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

于 2013-01-01T18:13:06.090 回答