"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 吗?

只需从 Gemfile 中删除无用的 require 选项,因为 bundler 可以在此 gem 中加载 类 而无需指定 require 选项在你的情况下。

gem 'gmail-api-ruby', '~> 0.0.10'

和运行bundle install.

仅供参考:阅读有关 require 选项 here 的部分。

require 如果底层文件系统区分大小写(它位于 linux,这是 heroku 的基础)

Gmail 改为 :require => 'gmail' 应该没问题。