如果我有a.rb:
require 'rack'
require 'b'
和我的b.rb是:
//do something with rack
b.rb是否还需要说:
require 'rack'
如果b.rb只会被a.rb要求?
我看到很多代码,其中a.rb需要'rack'并包含b.rb,这也需要'rack'。
答案 0 :(得分:1)
如果您可以保证在需要b之前始终需要机架,则无需在b.rb内require 'rack'
。如果您重新组织代码以不同的顺序要求事物,这可能会导致问题。
答案 1 :(得分:0)
尝试:
require 'rack' if defined?(Rack).nil?
这只是测试是否定义了作为模块的Rack的常量,如果常量为零则需要它。