我在某人的存储库中看到了以下源代码:
module Twitter
module Bootstrap
module Rails
require 'twitter/bootstrap/rails/engine' if defined?(Rails)
end
end
end
require 'less-rails'
require 'twitter/bootstrap/rails/bootstrap' if defined?(Rails)
我想知道将require
放入模块时会有什么不同?
答案 0 :(得分:12)
就require
而言,没有区别,即require
总是将文件加载到全局命名空间。
应该注意的是,在这种情况下,内部require
将始终运行,因为此时Rails
指的是它所在的模块,所以if
语句总会评估为真。
这意味着代码相当于可能不那么混乱:
module Twitter
module Bootstrap
module Rails
end
end
end
require 'twitter/bootstrap/rails/engine'
require 'less-rails'
require 'twitter/bootstrap/rails/bootstrap' if defined?(Rails)