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.