Я хотел бы знать, как правильно обработать ошибку ActionController::ParameterMissing
, поэтому вместо возврата некрасивого HTML-кода он возвращает сообщение и что-то отличное от 500 Internal Server Error
.
Как узнать, что у меня есть этот контроллер:
class MetricsController < ApplicationController
before_action :set_metric, only: [:update]
def update
if @metric.update(metric_params)
render json: @metric
else
render json: @metric.errors, status: :unprocessable_entity
end
end
private
def set_metric
@metric = Metric.find_by(site: params[:site_id], post_id: params[:post_id])
end
def metric_params
params.require(:metric).permit(:param1, :param2)
end
end
И если я отправлю запрос, отличный от json, содержащий метрический ключ с хотя бы одной пропеллером, rails автоматически ответит на запрос HTML. Я хотел бы перезаписать это.