这个获取响应是否有简写返回HTTP错误?

时间:2014-02-24 15:29:59

标签: ruby routing sinatra

我真的不知道该搜索什么来得到答案:

这个区块是否有空位:

get '/' do
  501
end

我开始遵循rubymonk.com教程,它暗示在红宝石中大多数事情都有一般的常识速记,但我尝试了以下但没有运气:

get '/' 501
get '/' (501)
get '/' {501}
get '/' do 501

2 个答案:

答案 0 :(得分:3)

不知道您使用的Ruby版本,可能是1.8.7,在Ruby 1.9和2.1.0上,代码get '/' { 501 }报告的错误是:

syntax error, unexpected '{', expecting $end

原因是解析器试图将块{ 501 }绑定到文字'/',即代码被解析为get('\' { 501 }),这显然是一个错误。您只需通过在'\'参数周围添加括号来消除语法歧义:

get('/') { 501 }

答案 1 :(得分:1)

试试这个:

get('/') { 501 }

似乎是Ruby语法的一个问题。

get '/' { 501 }f g x)似乎被解释为get('/'({ 501 }))f(g(x))),这是不正确的。