从
the gemfile man page,我了解到有两种方式可以导入您在Gemfile中指定的宝石. bundle.setup将“将gem添加到Ruby的加载路径”,而bundle.require将需要所有的gem.
这两种方法有什么区别?在哪种情况下我应该使用其中之一?
解决方法
Bundler.setup修改LOAD_PATH,所以你可以做这样的事情,如require’some_gem’,他们将工作.它允许您手工要求宝石.在Bundler之前,使用Rubygems,您将获得与需要“rubygems”相同的效果.
另一方面,Bundler.require(:default)实际上需要Gemfile中的所有gem(假设您不使用组;否则,如果您提供参数,则需要指定组中的gem).这是一组需要“some_gem”语句的缩写.
请参阅http://gembundler.com/rationale.html.请注意,他们说在做Bundler.require之前必须要做“bundler / setup”,但实际上这通常不是必需的.我几乎从不使用Bundler.setup(或需要’bundler / setup),因为我需要所有的gems通过Bundler.require).