Приложение Sinatra ничего не возвращает с Ruby 1.9.3 (отлично работает с Ruby 1.8.7) - PullRequest
0 голосов
/ 27 марта 2012

У меня есть служебное приложение Sinatra, которое работает на нескольких серверах, и мы используем его для некоторых внутренних задач.Он выполняет некоторые командные строки и выдает результаты в представление.

Он отлично работает на наших серверах под управлением Ruby 1.8.7, но когда я развернул его на новом сервере под управлением Ruby 1.9.3 (через модуль пассажира apache 2), он возвращает пустой ответ.Оба работают под управлением Sinatra 1.3.2 и Passenger 3.0.x.Единственное отличие (я вижу) в версии Ruby.

Есть ли в Ruby 1.9.3 что-нибудь с Sinatra или выполнением команд оболочки (через backtics), которое могло бы вызвать это?

Приложение - что-то вроде этого:

require 'rubygems'
require 'sinatra'
require 'erb'
require 'fileutils'
require 'digest/sha1'
require 'net/http'
require 'uri'

configure do
  set :views, "#{File.dirname(__FILE__)}/views"
end

error do
  e = request.env['sinatra.error']
  Kernel.puts e.backtrace.join("\n")
  'Application error'
end

# root page
get '/' do
  erb :index
end

post '/create' do 
  kommand = "ls -lha /some/dir"  
  result = `#{kommand}`
  # Render the done template
  return erb :done
end

Опять же, отлично работает на серверах с Ruby 1.8.7, но я получаю это на новом сервере с Ruby 1.9.3

Screen shot of empty response

...