Ich versuche, eine Form der Seitennummerierung mit Limit- und Offset-Abfrageparametern zu implementieren. Gibt es eine Möglichkeit, sicherzustellen, dass die Werte Ganzzahlen sind, andernfalls werfen Sie einen 400-Fehler, vielleicht mithilfe von strong_parameters? Es scheint so etwas zu sein wie Schienen, aber ich kann nichts finden.
Ich könnte die Abfrageparameter einfach manuell konvertieren, aber ich würde lieber etwas mehr kugelsicher verwenden, wenn möglich.
Wie der Kommentator @Litmus oben, würde ich empfehlen, ein Ruby-Juwel wie kaminari zu verwenden, um die Paginierung zu verwalten.
Aber wenn Sie Ihre eigenen rollen und Bedenken hinsichtlich der Bereinigung von Eingaben haben, ist die einfachste Methode, um sicherzustellen, dass die Parameter "offset" und "limit" Ganzzahlen sind, ein Filter in Ihrem Controller:
%Vor% Beachten Sie, dass Zeichenfolgen wie "foo"
in 0
konvertiert werden.
Sie müssen Ihre Parameter grundsätzlich manuell konvertieren. Idealerweise abstrahiere dies in eine Controller-Methode, um deine aktuelle Methode sauber zu halten.
%Vor%Super spät zum Spiel aber für zukünftige Googler ...
Sie können dieses Juwel in Erwägung ziehen: github.com/launchpadlab/decanter
Damit können Sie definieren, wie eingehende Parameter analysiert werden sollen.
Mehr dazu hier: Ссылка
Tags und Links ruby-on-rails ruby-on-rails-4