Я делаю учебное пособие по аутентификации и натолкнулся на следующую строку для gemfile
. Каково использование require
здесь?Что значит `require:` в Rails gemfile?
gem 'google-api-client', require: 'google/api_client'
Я понимаю require
в Javascript, но в Rails Я думал Gemfile для установки драгоценных камней, и как только они будут установлены, они могут быть использованы в приложении, и то все есть к этому ... поэтому я не уверен, почему я буду использовать require
.
Я особенно заинтересован, потому что после добавления этой строки и запуска сервера я столкнулся с ошибкой.
Ошибка:
/usr/local/rvm/gems/ruby-2.3.0/gems/bundler-1.11.2/lib/bundler/runtime.rb:77:in `require': cannot load such file -- google/api_client (LoadError)
Временное решение: Я закомментировал require:
часть и предотвращается ошибка. Но, возможно, это не идеально.
Так что понимание использования require
очень поможет в устранении этой проблемы.
Я прочитал другие статьи о SO, но они обсуждают особенности, такие как require => nil
и require => false
, что, я думаю, немного отличается от моего вопроса.
- Bunder: What does :require => nil in Gemfile mean?
- Bundler: What does :require => false in a Gemfile mean?
Может кто-нибудь поделиться Подстрекают?
UPDATE
позже я нашел это что объясняет это хорошо: When do you need a require in a rails Gemfile?
If you omit the :require option, by default Bundler will attempt to require the gem by using the standard name-to-file conversion rule:
This works well if the gem author has followed the standard conventions. But in some cases, for a variety of reasons, this doesn't happen.
Попробуйте добавить «require ..» в соответствующую модель, в которой вы используете драгоценный камень, и не включайте эту часть в файл gem. –
Обычно эта ошибка означает, что в папке библиотеки google-api-client' gem нет файла 'google/api_client', проверьте его вручную, отправив в bash:' file $ (bundle show google-api-client)/lib/google/api_client' –
Я могу на самом деле cd прямо в каталог 'api_client' -'/usr/local/rvm/gems/ruby-2.3.0/gems/google-api-client-0.9.5/lib/google/api_client' , Может ли это выглядеть не в том месте? –