Rieles de validación de parámetros de búsqueda.

Tengo una API que es bastante tranquila, pero me cuesta trabajo encontrar la forma de implementar una búsqueda limpiamente. Quiero poder buscar todos los registros entre dos fechas y fechas, se permite que las fechas y fechas tengan una diferencia máxima de 6 horas. En el momento en mi método de control tengo lo siguiente:

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 es un método de aplicación que se ve así:

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 es bastante similar.

Sé que va en contra de las mejores prácticas hacer la validación en el controlador, pero no puedo ver cómo puedo agregarlo al modelo de manera limpia.

Respuestas a la pregunta(3)

Su respuesta a la pregunta