Sinatra错误(bundler:无法加载命令:rackup)

abb*_*jam 9 config heroku sinatra rackup procfile

在将模块化Sinatra应用程序部署到Heroku时,我不断收到此错误:

bundler: failed to load command: rackup (/app/vendor/bundle/ruby/2.4.0/bin/rackup)

我试过调整我的config.ru和我的Procfile,没有成功.以下是config.ru的内容:

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

require_relative 'lib/app'
run Tir::App
Run Code Online (Sandbox Code Playgroud)

Procfile:

web: bundle exec rackup config.ru -p $PORT
Run Code Online (Sandbox Code Playgroud)

LIB/app.rb:

require 'sinatra/base'
module Tir
 class App < Sinatra::Base
  # code
 end
end 
Run Code Online (Sandbox Code Playgroud)

请指出我正确的方向.

PS.我可以部署应用程序,但在尝试使用Pony gem发送电子邮件时会出现上述错误.

编辑20.07.2018: 我已经调试了这个问题并找到导致崩溃的线路:

https://gist.github.com/abbottjam/248edfd50f094f99b3bf5b1f995fd290#file-static-rb-L15

错误消息现在说:

内部服务器错误:没有将Array隐式转换为String

所以它必须是configure_options下面方法中的代码块.仍然不知道数组 - >字符串转换应该在哪里发生.谢谢.

abb*_*jam 0

问题不在于代码,而在于 Heroku 的电子邮件插件。从 Mailgun 切换到 SendGrid 立即解决了问题。前者的目的是让您感到困惑,直到您选择他们的付费计划之一;后者的目的是让您感到困惑。后者可以帮助您通过最少的设置立即开始。