Синатра не может ответить на очень простой запрос GET - PullRequest
1 голос
/ 14 января 2012

У меня есть следующий Gemfile:

source "http://rubygems.org"

gem 'sinatra', '1.3.2'
gem 'json', '1.6.4'

И следующее приложение Sinatra:

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/ruby-1.9.2-p290@office-drop-sync/gems/rack-1.4.0/lib/rack/handler/webrick.rb:72:in `block in service'
/Users/mauricio/.rvm/gems/ruby-1.9.2-p290@office-drop-sync/gems/rack-1.4.0/lib/rack/handler/webrick.rb:71:in `each'
/Users/mauricio/.rvm/gems/ruby-1.9.2-p290@office-drop-sync/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

Я использую Ruby 1.9.2 с RVM на Lion Mac.

1 Ответ

4 голосов
/ 14 января 2012

Вы пытаетесь вернуть хеш из маршрута, но хеш не , что вы можете вернуть сюда .

Просто используйте .to_json, чтобы превратить хеш вСтрока json, которую вы можете затем вернуть (вам нужен json, но вы его еще не используете):

get '/ze/api/session.json' do
  content_type :json
  { :name => 'name' }.to_json
end
...