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.