curl командная строка POST - PullRequest
       3

curl командная строка POST

15 голосов
/ 29 апреля 2011

Я пытаюсь смоделировать POST для моего простого веб-сервиса Rails. Файлы, созданные скаффолдом, не были изменены. Когда я отправляю данные из формы веб-сайта, запись создается правильно.

Когда я пытаюсь выполнить POST с помощью curl, в базе данных создается запись, но она имеет значения NULL в полях, за исключением «updated_at» и «made_at». Я новичок в командной строке curl, поэтому, возможно, я делаю это неправильно.

curl -d "name=Gazoo&friend=Rubble" localhost:3000/flintstones

Я получил это от WEBrick:

Запущен POST "/ flintstones" для 127.0.0.1 в четверг, 28 апреля 18:04:47 -0600 2011 Обработка FlintstonesController # create as Parameters: {"name" => "Gazoo", "friend" => "Rubble "} AREL (0,3 мс) INSERT INTO" flintstones "(" имя "," друг "," create_at "," updated_at ") ЗНАЧЕНИЯ (NULL, NULL, '2011-04-29 00: 04: 47.779902', '2011 -04-29 00: 04: 47.779902 ') Перенаправлено на http://localhost:3000/flintstones/4

После GET для JSON

curl localhost: 3000 / flintstones.json

Я получаю:

[{ "кремень: {" Имя ": нулевой," created_at ":" 2011-04-29T00: 09: 58Z», "updated_at": "2011-04-29T00: 09: 58Z", "идентификатор" : 4, "друг": нулевая}}]

Почему я получаю нулевое значение в моих полях?

Заранее спасибо.

Ответы [ 2 ]

23 голосов
/ 29 апреля 2011

Я немного погуглил, и каждый пример использования curl с веб-сервисом rails показывает параметры, переданные в формате

object[paramName]=paramValue

, а также один -d, установленный для каждого параметра, который сделает ваш оператор CURL похожим на

curl -d "flintstone[name]=Gazoo" -d "flintstone[friend]=Rubble" localhost:3000/flintstones

Вот источники, на которые я ссылаюсь:

3 голосов
/ 29 апреля 2011

Rails (по умолчанию) не ищет тело сообщения указанным способом "name=Gazoo&friend=Rubble". Он ищет эту схему - учитывая, что ваша модель Flintstones и ваши поля имя и друг - "Flintstone[name]=Gazoo&Flintstone[friend]=Rubble" Это DSL рельса для тела сообщения из сообщения формы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...