2

我正在尝试在 Sinatra 中创建一个页面,以便您发布的任何内容(在参数名称“command”下)都会回显给您。这是我目前的方法:

post '/eval' do
  "I got #{params[:data][:command]}."
end

如果我尝试向 /eval 发布任何内容,则会导致内部服务器错误。我究竟做错了什么?

4

1 回答 1

11

问题是你的[:data]参数是nil. 解决此问题的一种方法是删除对[:data]. 试试这个。

require "rubygems"
require "sinatra"

post '/eval' do
  "I got #{params[:command]}."
end

您可以在命令行上使用 curl 进行测试(如果您使用的是基于 unix 的系统)。

curl http://localhost:4567/eval -F "command=hello"

将来,如果您在问题中提供错误的堆栈跟踪,将对其他人有所帮助。

于 2010-11-14T03:36:13.437 回答