Ruby on rails &引用;无法加载此文件";将Rails应用程序部署到Heroku时出错

Ruby on rails &引用;无法加载此文件";将Rails应用程序部署到Heroku时出错,ruby-on-rails,ruby,ruby-on-rails-4,heroku,Ruby On Rails,Ruby,Ruby On Rails 4,Heroku,我正在Rails应用程序中使用。我的文件包含: gem 'gmail-api-ruby', :require => 'Gmail' 在我的控制器中,我使用(使用designe/omniauth从Google获取refresh\u令牌)初始化gem: 这在开发中可以很好地工作,但当我部署到Heroku时,会出现以下错误: /app/vendor/bundle/ruby/2.2.0/gems/bundler-1.7.12/lib/bundler/runtime.rb:76:in `requi

我正在Rails应用程序中使用。我的文件包含:

gem 'gmail-api-ruby', :require => 'Gmail'
在我的控制器中,我使用(使用designe/omniauth从Google获取
refresh\u令牌
)初始化gem:

这在开发中可以很好地工作,但当我部署到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

只需从您的
gem文件中删除无用的
require
选项,因为
bundler
可以在这个gem中加载类,而无需在您的情况下指定
require
选项

gem 'gmail-api-ruby', '~> 0.0.10'
然后运行
捆绑安装


仅供参考:请阅读关于
require
选项的部分。

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


更改为
:require=>'gmail'
而不是
gmail
,您应该没事。

当发生此类问题时,几乎总是没有提交对
Gemfile
Gemfile.lock
的更改并将其推送到heroku。您能再次确认所有更改都已提交并推送吗?我刚刚将Gemfile和Gemfile.lock重新提交给Heroku,但仍然会收到此错误。在这一点上,我正在讨论启动一个新的Heroku项目。我就是不知道是什么原因造成的。删除
Gemfile.lock
;运行
捆绑安装
;git提交;推再次检查。我删除了
Gemfile.lock
并运行了
bundle安装
,然后提交并推送到Heroku,但仍然收到错误。就是这样。哇,谢谢你,弗雷德里克。我快疯了。如果我删除
:require=>'gmail'
部分,我会在使用它的控制器中得到一个“uninitialized constant:gmail”错误。gem中的gem名称和类文件是不同的。据我所知,这就是为什么我需要在Gemfile中使用require语句的原因。
gem 'gmail-api-ruby', '~> 0.0.10'