Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby Sinatra无法响应一个非常基本的GET请求_Ruby_Sinatra_Ruby 1.9 - Fatal编程技术网

Ruby Sinatra无法响应一个非常基本的GET请求

Ruby Sinatra无法响应一个非常基本的GET请求,ruby,sinatra,ruby-1.9,Ruby,Sinatra,Ruby 1.9,我有以下档案: 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

我有以下档案:

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

我在Lion Mac中使用带RVM的Ruby 1.9.2。

您试图从路由返回哈希,但哈希不是

只需使用
.to_json
将哈希转换为json字符串,然后返回(您需要json,但尚未使用):


您正试图从路由返回哈希,但哈希不是

只需使用
.to_json
将哈希转换为json字符串,然后返回(您需要json,但尚未使用):


也许这是一条毫无帮助的评论,但你的代码是可靠的,在Ubuntu 10.10上运行得很好。你是通过执行
ruby app.rb
?@Gazler启动应用程序的吗?错误来自webrick处理程序。尝试添加
set:server,'webrick'
,您应该能够复制它。其他处理程序(瘦?)在这里似乎更宽容。也许这是一个毫无帮助的评论,但你的代码是可靠的,在Ubuntu 10.10上运行良好。你是否通过执行
ruby app.rb
?@Gazler启动应用程序错误来自webrick处理程序。尝试添加
set:server,'webrick'
,您应该能够复制它。看起来其他处理程序(thin?)在这里更宽容。就是这样,谢谢,我遵循的教程没有提到to_json调用。就是这样,谢谢,我遵循的教程没有提到to_json调用。
get '/ze/api/session.json' do
  content_type :json
  { :name => 'name' }.to_json
end