【发布时间】:2015-01-11 14:33:02
【问题描述】:
我的 heroku 应用程序崩溃了,因为它找不到模块“SecureRandom”。我在 gemfile 中指定了我的 Ruby 版本,我的计算机、gemfile 和 Heroku 似乎都与 Ruby 版本号匹配,尽管不是补丁号。
其他帖子建议将 usr/bin/heroku 指向特定的 Ruby 文件,但我不知道该怎么做(我的应用程序中没有 Heroku bin)。这似乎是一个 Ruby 版本错误。我该如何解决这个问题?
class OrderItem < ActiveRecord::Base
require 'SecureRandom'
...
end
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)
宝石文件:
source 'https://rubygems.org'
ruby '2.0.0'
命令行:
/ $ 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]
提前致谢。
【问题讨论】:
-
我的印象是模块和类是混合大小写声明的,如以下网站所述:itsignals.cascadia.com.au/?p=7。但显然,不包括混合大小写的它们,因为这已经解决了这个问题。谢谢!
-
文件总是小写,类总是驼峰化
-
你为什么还要尝试要求 SecureRandom?各种 Rails already depend on SecureRandom 并需要它。
-
@apneadiving 这不是真的,通常的约定是使用所有小写的文件名(无论是使用破折号还是下划线(或根本不使用)来标记内部 majuscule 似乎是......未定义......);并且 Ruby 类/模块的 only 要求是开头的大写字母。
-
@DMKE,简短的回答是我不知道,只是检查了一下,你是对的。谢谢你的澄清。
标签: ruby-on-rails ruby heroku