2016-01-23 7 views
0

Я борюсь с методами API из Rack :: Test. Предоставление параметров ресурса имеет смысл для сообщение метод, но для получить, кажется, это не так. Когда я хочу, чтобы извлечь ресурс с определенным идентификатором , я пытаюсь сделать запрос:Rack :: Test :: Метод установки идентификатора при использовании метода get

get "/resources/#{id}", {Accept: Mime::JSON} 

и это на самом деле работает, но это не так, если я обеспечиваю идентификатор в качестве второго аргумента :

get '/resources', id: id, {Accept: Mime::JSON} 
# or 
get '/resources', {id: id}, {Accept: Mime::JSON} 
# omits the id - just fetches all the resources 

Как указать идентификатор в качестве отдельного параметра? Вложение его внутри строки выглядит ужасно.

ответ

1

Параметр секунд определяет полезную нагрузку запроса. GET не имеет полезной нагрузки, поскольку вы не можете отправлять какие-либо данные при выполнении запроса GET.

В запросе на получение полезная нагрузка ключа/значения представлена ​​строкой запроса (плюс URI), поэтому первым способом является путь.

Если вместо GET использовать другой метод, такие как POST, PUT, DELETE или PATCH, то второй параметр представляет полезную нагрузку запроса.

patch "/resources/#{id}", { foo: "bar" }.to_json, {Accept: Mime::JSON} 

 Смежные вопросы

  • Нет связанных вопросов^_^