Heroku加载错误需要吗?

时间:2013-12-23 22:41:23

标签: ruby heroku

我的Ruby应用程序在我的nitrous.io框中运行正常,但当我将其推送到Heroku并且它尝试运行预定的进程时,日志显示此错误:

2013-12-23T22:37:11.902160+00:00 heroku[scheduler.4283]: State changed from starting to up                                                                                                                  
2013-12-23T22:37:12.178751+00:00 app[scheduler.4283]:   from /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:53:in `require'                                                      
2013-12-23T22:37:12.178751+00:00 app[scheduler.4283]:   from /app/bin/rbtc:3:in `<main>'                                                                                                                    
2013-12-23T22:37:12.178751+00:00 app[scheduler.4283]: /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:53:in `require': cannot load such file -- rbtc_arbitrage (LoadError)                                                                                                                                                                                                           
2013-12-23T22:37:13.432972+00:00 heroku[scheduler.4283]: Process exited with status 1                                                                                                                       
2013-12-23T22:37:13.461438+00:00 heroku[scheduler.4283]: State changed from up to complete     

这是/ app / bin / rbtc:3

中的代码
#!/usr/bin/env ruby

require 'rbtc_arbitrage'
RbtcArbitrage::CLI.start ARGV

File structure link

我尝试将此更改为require_relative,就像在Stack Overflow上回复其他人一样无济于事。

我在这里有点不知所措。任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:1)

请确保此文件存在:lib/rbtc_arbitrage.rb这样会在您的仓库中加载其他文件(如果您使用的是捆绑包,则语法有效):

require 'rbtc_arbitrage/version'
require 'rbtc_arbitrage/file1'
# .. and so on

现在,添加此文件应该可以单独使用,但如果这不起作用,请尝试将lib目录添加到bin/rbtc文件中的LOAD PATH,然后再添加require个{I}}个这样:

$LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..', 'lib')

这明确告诉ruby将lib目录添加到加载路径,并应解决您的问题。