Обработка POSTDATA в Синатре
Я пытаюсь создать страницу в Синатре, чтобы все, что вы публикуете (под именем параметра "команда"), было возвращено вам. Вот мой текущий подход:
post '/eval' do
"I got #{params[:data][:command]}."
end
Если я пытаюсь что-то опубликовать в / eval, это приводит к внутренней ошибке сервера. Что я делаю неправильно?
1 ответ
Проблема в том, что ваш [: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"
В будущем другим будет полезно, если вы зададите в стеке трассировку своей ошибки вместе со своим вопросом.