Не можете использовать статус http рельсов при исключении винограда? - PullRequest
0 голосов
/ 11 апреля 2019

Я новичок в программировании рельсов и пытаюсь использовать rails status code при создании исключения из винограда, но мои тесты не пройдены. Я не смог найти ни одного примера по документации винограда, так что это может быть невозможно.

Я хочу знать, возможно ли это, а если нет, то почему?

Это работает:

rescue_from Example::IsExampleWorking do |_e|
    error!({ messages: ["Example is not working because it was not found"] }, 404)
end

Но это не так:

rescue_from Example::IsExampleWorking do |_e|
    error!({ messages: ["Example is not working because it was not found"] }, :not_found)
end

Мой тест:

it "return a 404 Not Found status" do
  expect(response).to have_http_status(:not_found)
end

edit: ребята, я забыл упомянуть, что сообщение об ошибке теста

undefined method `to_i' for :not_acceptable:Symbol
Did you mean?  to_s

Но я не нашел никаких документов на документы винограда, чтобы убедиться, что они принимают только целое число в качестве второго параметра.

Спасибо:)

Ответы [ 2 ]

0 голосов
/ 12 апреля 2019

Http код состояния всегда только целое число. Это отраслевой стандарт. Вы не можете изменить код статуса http или отправить код статуса http в виде строки.

Найти список кодов состояния http можно здесь. https://www.restapitutorial.com/httpstatuscodes.html

И это не относится к рельсам, винограду или любым другим рамкам.

0 голосов
/ 11 апреля 2019

Виноград позволяет указывать type при определении параметров.

params do
  # Basic usage: require a parameter of a certain type
  requires :param_name, type: Integer
end

См .: https://www.rubydoc.info/github/ruby-grape/grape/Grape%2FDSL%2FParameters:requires

...