"无法加载此类文件"将Rails应用程序部署到Heroku时出错

时间:2015-03-15 01:54:41

标签: ruby-on-rails ruby ruby-on-rails-4 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)

我无法弄清楚原因。我应该在我的应用程序的其他地方要求宝石吗?

  • Ruby 2.2.0
  • Bundler:1.8.5
  • Rails:4.2.0

2 个答案:

答案 0 :(得分:3)

如果底层文件系统区分大小写(它在linux上,这是支持heroku),

require区分大小写。

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

答案 1 :(得分:0)

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

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

并运行bundle install

仅供参考:阅读有关require选项here的内容。