"Cannot load such file" 将 Rails 应用程序部署到 Heroku 时出错
"Cannot load such file" error when deploying Rails app to Heroku
我在 Rails 应用程序中使用 gem for gmail。我的 Gemfile 包含:
gem 'gmail-api-ruby', :require => 'Gmail'
在我的控制器中,我初始化 gem(使用 devise/omniauth 从 Google 获取 refresh_token
):
Gmail.client_id = ENV['CLIENT_ID']
Gmail.client_secret = ENV['CLIENT_SECRET']
Gmail.refresh_token = current_user.refresh_token
这在开发中工作正常,但是当我部署到 Heroku 时,出现以下错误:
/app/vendor/bundle/ruby/2.2.0/gems/bundler-1.7.12/lib/bundler/runtime.rb:76:in `require': cannot load such file -- Gmail (LoadError)
我不明白为什么。我应该在我的应用程序的其他地方要求 gem 吗?
- Ruby 2.2.0
- 捆绑器:1.8.5
- Rails: 4.2.0
只需从 Gemfile
中删除无用的 require
选项,因为 bundler
可以在此 gem 中加载 类 而无需指定 require
选项在你的情况下。
gem 'gmail-api-ruby', '~> 0.0.10'
和运行bundle install
.
仅供参考:阅读有关 require
选项 here 的部分。
require
如果底层文件系统区分大小写(它位于 linux,这是 heroku 的基础)
将 Gmail
改为 :require => 'gmail'
应该没问题。
我在 Rails 应用程序中使用 gem for gmail。我的 Gemfile 包含:
gem 'gmail-api-ruby', :require => 'Gmail'
在我的控制器中,我初始化 gem(使用 devise/omniauth 从 Google 获取 refresh_token
):
Gmail.client_id = ENV['CLIENT_ID']
Gmail.client_secret = ENV['CLIENT_SECRET']
Gmail.refresh_token = current_user.refresh_token
这在开发中工作正常,但是当我部署到 Heroku 时,出现以下错误:
/app/vendor/bundle/ruby/2.2.0/gems/bundler-1.7.12/lib/bundler/runtime.rb:76:in `require': cannot load such file -- Gmail (LoadError)
我不明白为什么。我应该在我的应用程序的其他地方要求 gem 吗?
- Ruby 2.2.0
- 捆绑器:1.8.5
- Rails: 4.2.0
只需从 Gemfile
中删除无用的 require
选项,因为 bundler
可以在此 gem 中加载 类 而无需指定 require
选项在你的情况下。
gem 'gmail-api-ruby', '~> 0.0.10'
和运行bundle install
.
仅供参考:阅读有关 require
选项 here 的部分。
require
如果底层文件系统区分大小写(它位于 linux,这是 heroku 的基础)
将 Gmail
改为 :require => 'gmail'
应该没问题。