В контроллере нужно убедиться что параметры присутствуют. Если нет, то в API обработчик ActionController::ParameterMissing, как я понимаю, должен самостоятельно вернуть ответ об отсутствующих параметрах.
Тестирую так:
ActionController::Parameters.new(foo1: 'bar1', foo2: 'bar2').require([:foo1, :foo2])
ActionController::ParameterMissing: param is missing or the value is empty: [:foo1, :foo2]
Что нелогично, поскольку параметры то переданы. Что я делаю не так?
Ищу лаконичную альтернативу простым проверкам в контроллере типа таких:
(render json: {status: "Error", message: "Missing parameter 'foo1'"}; return) unless param.has_key?(:foo1)
(render json: {status: "Error", message: "Missing parameter 'foo2'"}; return) unless param.has_key?(:foo2)