これは、ルート ブロック内のコードの末尾です。何が起こっているかというと、success_loader がレンダリングされず、代わりに Sinatra が null 応答を送信することです (ページは空白です)。
if v.test
mydata = v.sheetData
end
if v.errors.size == 0
#success
haml :success_loader, :layout => :base,
:locals => {:pub_path => settings.root, :app_ver => settings.version }
else
#fail
haml :failure_loader, :layout => :base,
:locals => {:pub_path => settings.root, :app_ver => settings.version,
:app_error => v.errors }
end
File.delete(target) if File.exists?(target)
デバッガーを使用して、haml への呼び出しが始まるポイントから始まる各行を表示します
haml :success_loader, :layout => :base,
:locals => {:pub_path => settings.root, :app_ver => settings.version }
getter = proc { value }
value = :pub_path
getter = proc { value }
value = :apper_ver
File.delete(target) if File.exists?(target)
@params = @original_params
filter! :after unless env['sinatra.static_file']
res = [res] if Fixnum === res or String === res
if Array === res and Fixnum === res.first
status(res.shift)
body(res.pop)
headers(*res)
invoke { error_block!(response.status) }
unless @response['Content-Type'
より類似した行を束ねます。次に、これで始まる Thin からの数行:
log "!! Rack application returned nil body. Probably you wanted it to be an empty string?" if @response.body.nil?
ルートの外でコードをテストしたので、例外はスローされません。haml テンプレートは、他のルートで使用すると正常に機能します。何が起こっているのですか?