Sinatra应用程序不返回Ruby 1.9.3(适用于Ruby 1.8.7)

时间:2012-03-26 20:25:22

标签: ruby shell sinatra passenger

我有一个在多个服务器上运行的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或执行shell命令(通过backtics)会导致这种情况?

App就是这样的:

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

0 个答案:

没有答案