Опция-1: У нас есть что-то похожее в нашей настройке, мы делаем то, что у нас есть метод с именем render_response
в нашем base_api_controller
файле. Который выглядит примерно так:
def render_response(render_params)
# controller_name, action_name will give you controller and action which rendered the response.
# so you can decide weather to process anything or just render
render_params[:json] = { payload: render_params[:json] }
render render_params
end
И действие вашего контроллера преобразуется во что-то вроде:
return_obj = { key: value }
render_response json: return_obj
Лично (и очевидно) мне нравится первый подход, потому что он явный, и просмотр кода контроллера дает нам информацию о том, что мы обрабатываем ответ дальше.
Опция-2: Если вам не нравится замена render
на render_response
, вы можете следовать этому руководству для настройки промежуточного программного обеспечения стойки, что тоже очень просто. но вам придется размещать проверки контроллеров, если вы не хотите делать какие-либо обновления для некоторых конкретных действий контроллера. Также обратите внимание, что это будет автоматически, поэтому, если никто не заметит (давайте посмотрим на кого-то совершенно нового для вашего кода), он изменит ответ. Что мне лично не очень нравится.