将模块化Sinatra应用程序部署到Heroku时,出现此错误:
public class ItemTableViewController<T>: UIViewController where T: AvatarItem {
fileprivate let viewModel: ItemTableViewModel
public init(avatarItems: [T], selectedAvatarItem: @escaping (T) -> Void, configureCell: @escaping ConfigureAvatarCell) {
viewModel = ItemTableViewModel(avatarItems: avatarItems, selectedAvatarItem: selectedAvatarItem, configureCell: configureCell)
super.init(nibName: .none, bundle: .none)
configureView()
}
public class AvatarItemTableViewController<T>: ItemTableViewController where T: AvatarItem {
fileprivate let viewModel: AvatarItemTableViewModel
public init(avatarItems: [T], selectedAvatarItem: @escaping (T) -> Void, configureCell: @escaping ConfigureAvatarCell) {
super.init(avatarItems: avatarItems, selectedAvatarItem: selectedAvatarItem, configureCell: configureCell)
super.viewModel = AvatarItemTableViewModel(avatarItems: avatarItems, selectedAvatarItem: selectedAvatarItem, configureCell: configureCell)
}
我尝试调整config.ru和Procfile,但没有成功。这是config.ru的内容:
if [ -d "$working_dir"/"$line"/Actual_Program_and_Database ]
then
sw_dir='Actual_Program_and_Database'
num_files=$(ls "$working_dir"/"$line"/Actual_Program_and_Database | wc -l) #count files in dir
db_counter=0 # count Clarion DB files in dir
for filename in "$working_dir"/"$line"/Actual_Program_and_Database/*
do
file_type=$(file "$filename")
if [[ $file_type = *Clarion* ]]
then
db_path[$db_counter]=$filename
db_name[$db_counter]=$(basename "$filename")
db_hash[$db_counter]=$(md5sum "$filename" | awk '{ print $1 }')
((db_counter ++))
elif [[ $file_type = *POSIX* ]]
then
script_path=$filename
script_name=$(basename "$filename")
script_hash=$(md5sum "$filename" | awk '{ print $1 }')
elif [[ $file_type = *CRLF* ]]
then
list_path=$filename
list_name=$(basename "$filename")
list_hash=$(md5sum "$filename" | awk '{ print $1 }')
else
unknown_file='1'
fi
done
else
sw_dir='0'
fi
Procfile:
bundler: failed to load command: rackup (/app/vendor/bundle/ruby/2.4.0/bin/rackup)
lib / app.rb:
$LOAD_PATH.unshift(::File.expand_path('lib', ::File.dirname(__FILE__)))
require_relative 'lib/app'
run Tir::App
请指向正确的方向。
PS。我可以部署该应用程序,但是尝试通过Pony gem发送电子邮件时出现上述错误。
已编辑2018年7月20日: 我已经调试了这个问题,并找到了导致崩溃的行:
https://gist.github.com/abbottjam/248edfd50f094f99b3bf5b1f995fd290#file-static-rb-L15
错误消息现在显示:
内部服务器错误:没有将数组隐式转换为字符串
因此它必须是下面web: bundle exec rackup config.ru -p $PORT
方法中的代码块。仍然不知道应该在哪里进行数组->字符串转换。谢谢。
答案 0 :(得分:0)
问题不在于代码,而在于Heroku的电子邮件附件。从Mailgun切换到SendGrid可以立即解决问题。前者旨在混淆您选择他们的付费计划之一的情况;后者可以帮助您以最少的设置立即出手。