我的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
我尝试将此更改为require_relative
,就像在Stack Overflow上回复其他人一样无济于事。
我在这里有点不知所措。任何帮助表示赞赏!
答案 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
目录添加到加载路径,并应解决您的问题。