Bundler:什么:gemfile中的require => nil是什么意思?

这个gemfile条目中的nil是什么意思?

gem "hub", ">= 1.10.2", :require => nil 

我发现这个问题并回答错误;

Bundler:什么:Gemfile中的require => false是什么意思?

在这种情况下,nil的行为与false相同吗?

是的, nilfalse在这里表现相同:它使Bundler不需要指定的gem。

要求nilfalse意味着捆绑器不会加载( require )特定的gem。 但是,它们将位于$:加载路径中,因此您可以在需要使用它们时明确要求它们。 对于仅在特殊情况下需要的gem(例如外部脚本,rake任务等),使用它是一个好习惯。

每当你在你的Gemfile指定一个Gem并运行bundle install ,bundler就会在你的应用程序中安装指定的gem和加载代码,方法是将Gemfile require 'whenever' ,这样捆绑器将为你的Rails中的所有Gems加载代码应用程序,你可以从任何gem调用任何方法没有任何痛苦,就像你大多数时间做的那样。

但Gems喜欢whenever,faker or capistrano你的应用程序代码中你不需要你需要的东西,你需要在schedule.rb文件中的代码,以管理deploy.rb文件中的crons和capistrano代码,以自定义部署配方,所以你不需要加载在您的应用程序代码中的这些gem的代码以及您想要从这些gem调用任何方法的任何地方,您可以通过将“ require "whenever"置于require "whenever"手动要求这些gem。 所以你把Gemfile中的:require => false:require => nil (两者都意味着相同)用于这些Gems,这样Bundler就会安装那个Gem但不加载Gem本身的代码,你可以随时随地做通过简单地在您的情况下像需要’随时’。