Обработка 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"

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

Другие вопросы по тегам