Schienen, die Suchparameter validieren

Ich habe eine API, die ziemlich erholsam ist, aber Schwierigkeiten hat, herauszufinden, wie eine Suche sauber implementiert werden kann. Ich möchte in der Lage sein, nach allen Datensätzen zwischen zwei Datumszeiten zu suchen. Die Datumszeiten dürfen maximal 6 Stunden auseinander liegen. Momentan habe ich in meiner Controller-Methode Folgendes:

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 ist eine Anwendungsmethode, die so aussieht:

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 ist ziemlich ähnlich.

Ich weiß, dass es gegen die Best Practices verstößt, die Validierung im Controller durchzuführen, aber ich kann nicht erkennen, wie ich sie sauber zum Modell hinzufügen kann.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage