7

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

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

我发现这个问题和答案是错误的;

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

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

4

3 回答 3

15

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

于 2012-08-30T15:24:46.897 回答
7

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

于 2012-08-30T17:14:58.993 回答
1

每当您在您的Gemfile和运行中指定一个 Gem 时 bundle install,bundler 将去安装指定的 gem 并通过 put 在您的应用程序中加载该 Gem 的代码 require 'whenever' ,这样 bundler 将为您的 Rails 应用程序中的所有 Gems 加载代码,您可以调用任何任何宝石的方法都没有任何痛苦,就像你大部分时间一样。

但是像 Gems 这样whenever,faker or capistrano 的东西是您的应用程序代码中不需要的东西,只要文件中的代码schedule.rb 用于管理文件中的 crons 和 capistrano 代码deploy.rb 以自定义部署配方,因此您无需在应用程序代码中以及在任何地方加载这些 gems 的代码想要从这些 Gems 中调用任何方法,您可以通过 put 手动要求这些 Gems require "whenever" 。所以你为这些 Gems 放入:require => false:require => nil放入 Gemfile(两者的含义相同),这样捆绑程序将安装该 Gem 但不加载该 Gem 本身的代码,您可以随时通过简单地将 like require 'whenever' 放入您的案子。

于 2016-02-26T08:09:29.743 回答