与do end一起使用时,Proc抛出错误

时间:2014-08-09 09:50:15

标签: ruby rack proc

这不起作用:

run Proc.new do |env|
  [200, 
   {
    "Content-Type" => "application/json; charset=UTF-8"
  }, ["{\"name\":\"Rack App\"}"]]
end

但这样做:

run Proc.new { |env|
  [200, 
   {
    "Content-Type" => "application/json; charset=UTF-8"
  }, ["{\"name\":\"Rack App\"}"]]
}

任何想法,为何与do..end一起使用时抛出错误?

我收到错误:

app.ru:1:in new: tried to create Proc object without a block (ArgumentError)

1 个答案:

答案 0 :(得分:2)

您的第一个代码被解释为:

run(Proc.new) do |env|
  ...
end

并且阻止传递给run而不是new。这个问题可以通过以下方式解决:

run(Proc.new do |env|
  ...
end)