1
我有以下的Gemfile:西纳特拉没有回答一个非常基本的GET请求
source "http://rubygems.org"
gem 'sinatra', '1.3.2'
gem 'json', '1.6.4'
而下面西纳特拉应用:
require 'sinatra'
require 'json'
get '/ze/api/session.json' do
content_type :json
{ :name => 'name' }
end
当我作出这样一个基本要求:
curl localhost:4567/ze/api/session.json
我得到这个:
[2012-01-13 17:30:36] ERROR TypeError: can't convert Array into String
/Users/mauricio/.rvm/gems/[email protected]/gems/rack-1.4.0/lib/rack/handler/webrick.rb:72:in `block in service'
/Users/mauricio/.rvm/gems/[email protected]/gems/rack-1.4.0/lib/rack/handler/webrick.rb:71:in `each'
/Users/mauricio/.rvm/gems/[email protected]/gems/rack-1.4.0/lib/rack/handler/webrick.rb:71:in `service'
/Users/mauricio/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/webrick/httpserver.rb:111:in `service'
/Users/mauricio/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/webrick/httpserver.rb:70:in `run'
/Users/mauricio/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/webrick/server.rb:183:in `block in start_thread'
localhost - - [13/Jan/2012:17:30:36 BRT] "GET /ze/api/session.json HTTP/1.1" 500 311
我在Lion Mac中使用Ruby 1.9.2和RVM。
也许是无益的评论,但你的代码是坚实的,在Ubuntu 10.10上可以正常工作。你是通过做'ruby app.rb'来启动应用吗? – Gazler 2012-01-13 20:36:41
@Gazler错误来自webrick处理程序。尝试添加'set:server',webrick'',你应该能够重现它。看来其他处理程序(瘦?)在这里更宽容。 – matt 2012-01-13 21:17:08