我正在做一个有关身份验证的教程,并且遇到gemfile
的以下行。这里require
的用途是什么?
gem 'google-api-client', require: 'google/api_client'
我在Javascript中理解require
,但是在Rails中我认为gemfile是用于安装gem的,一旦安装它们就可以在应用程序中使用,这就是它所有的...所以我和#39;我不确定为什么要使用require
。
我特别感兴趣,因为在添加此行并启动服务器后,我遇到了错误。
错误:
/usr/local/rvm/gems/ruby-2.3.0/gems/bundler-1.11.2/lib/bundler/runtime.rb:77:in `require':无法加载此类文件 - google / api_client(LoadError)
临时解决方案:我已对require:
部分进行了注释,并且阻止了错误。但也许这不太理想。
因此,了解require
的使用对于解决此问题非常有帮助。
我阅读了有关SO的其他文章,但他们讨论了require => nil
和require => false
等细节,我认为这与我的问题略有不同。
有人可以分享一些煽动吗?
更新
我后来发现了这个解释得很好:When do you need a require in a rails Gemfile?
如果省略:require选项,默认情况下Bundler将尝试 通过使用标准的名称到文件转换规则来要求gem:
如果宝石作者遵循标准,这很有效 约定。但在某些情况下,由于各种原因,这并非如此 发生。
答案 0 :(得分:1)
当宝石本身不需要任何lib时,您需要以Gemfile
(您编写的方式)或项目中的某个文件来执行此操作。
例如:想象一个宝石,它针对任何特定问题都有多个解决方案。但是,您不想加载所有这些解决方案(文件),您只需要一个。然后,您需要使用require: some_lib
指定要加载的文件。