Rails que validam os parâmetros de pesquisa

Eu tenho uma API que é bastante tranquila, mas estou lutando para descobrir como implementar uma pesquisa de forma limpa. Eu quero ser capaz de procurar por todos os registros entre dois tempos de data, os tempos de data podem ter um máximo de 6 horas de intervalo. No momento em meu método de controlador, tenho o seguinte:

required_params = [:start_time, :end_time]
if check_required_params(required_params, params) and check_max_time_bound(params, 6.hours)
   ... rest of controller code here ...
end

check_required_params é um método de aplicação que se parece com isto:

def check_required_params(required_params, params_sent)
required_params.each do |param|
  unless has_param(param, params_sent)
    unprocessable_entity
    return false
  end
end
  true
end

check_max_time é bastante semelhante.

Eu sei que é contra as melhores práticas para fazer a validação no controlador, mas não consigo ver como posso adicioná-lo ao modelo de forma limpa.

questionAnswers(3)

yourAnswerToTheQuestion