Heroku找不到SecureRandom

ste*_*eel 5 ruby ruby-on-rails heroku

我的heroku应用程序崩溃,因为它无法找到模块'SecureRandom'.我在gemfile中指定我的Ruby版本,我的计算机,gemfile和Heroku似乎都匹配Ruby版本号,但不是补丁号.

其他帖子建议将usr/bin/heroku指向特定的Ruby文件,但我不知道该怎么做(我的应用程序中没有Heroku bin).这似乎是一个Ruby版本错误.我该如何解决这个问题?

class OrderItem < ActiveRecord::Base
  require 'SecureRandom'

  ...
end
Run Code Online (Sandbox Code Playgroud)

Heroku日志:

/app/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.3/lib/active_support/dependencies.rb:229:in `require': No such file to load -- SecureRandom (LoadError)
Run Code Online (Sandbox Code Playgroud)

的Gemfile:

source 'https://rubygems.org'
ruby '2.0.0'
Run Code Online (Sandbox Code Playgroud)

命令行:

/ $ heroku run ruby -v
Running `ruby -v` attached to terminal... up, run.9318
ruby 2.0.0p481 (2014-05-08 revision 45883) [x86_64-linux]

/ $ ruby -v
ruby 2.0.0p451 (2014-02-24 revision 45167) [x86_64-darwin12.5.0]
Run Code Online (Sandbox Code Playgroud)

提前致谢.

Mau*_*res 11

实际名称全是securerandom小写.Linux文件系统通常区分大小写.

因此,将您的要求更改为:

require 'securerandom'
Run Code Online (Sandbox Code Playgroud)