Обработка POSTDATA в Синатре - PullRequest
2 голосов
/ 14 ноября 2010

Я пытаюсь создать страницу в Синатре, чтобы все, что вы публикуете (под именем параметра «команда»), было возвращено вам. Вот мой текущий подход:

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

Если я попытаюсь что-то опубликовать в / eval, это приведет к внутренней ошибке сервера. Что я делаю не так?

1 Ответ

11 голосов
/ 14 ноября 2010

Проблема в том, что ваш [: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"

В будущем другим будет полезно, если вы зададите в стеке трассировку своей ошибки вместе со своим вопросом.

...