0
Когда кто-то обращается к моему API с чем-то отличным от целочисленного значения, он должен вернуть ошибку 400.Отобразить код состояния при возникновении ошибки
Мой minimalized метод индекс:
def index
@returnType = MyType.all
if params["limit"].present?
begin
limit = Integer(limit)
rescue Exception=>e
render status: :bad_request
end
end
respond_to do |format|
format.json
end
end
Но, за исключением случая-я получаю AbstractController::DoubleRenderError
.
Проблема заключается в том, что Rails не останавливает метод на render
, он продолжался с частью respond_to
.
ПРИМЕЧАНИЕ. Вы должны быть осторожны с английскими операторами 'и' и 'or'. Прочитайте это: http://devblog.avdi.org/2014/08/26/how-to-use-rubys-english-andor-operators-without-going-nuts/ – Surya
прояснил это @Surya, но я задаю вопрос, как смущая это в этой ситуации. – Undo
Ваше решение хорошее, +1, но люди, которые новичок в экосистеме Ruby, узнают больше из ответов, размещенных на SO. Таким образом, '&&' и 'and' сильно путаются с их приложениями новичками, и, поскольку у вас был ответ, я не мог смириться с этим для других. :) – Surya