在Rails应用程序的boot.rb
中,有一行:
require 'bundler/setup' if File.exists?(ENV['BUNDLE_GEMFILE'])
在application.rb
中,还有另一行:
Bundler.require(:default, Rails.env)
您能否简要解释一下Rails / Bundler在require 'bundler/setup'
和'Bundler.require'
处的行为?
是否有效声明,bundler/setup
需要Bundler,而Gemfile
需要来自Bundler.require
的所有宝石?
答案 0 :(得分:6)
require 'bundler/setup'
做的是让Rails自动发现Gemfile,然后将其中定义的所有gem添加到Ruby的加载路径中。
Bundler.require(:default, Rails.env)
将需要Gemfile中的所有gem,具体取决于当前的Rails环境。因此,如果当前环境是开发环境,Rails将加载所有要在开发环境中使用的gem。
希望有所帮助!