Rails konvertiert Abfragezeichenfolgenparameter automatisch in Ganzzahlen

9

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.

    
Tom Brunoli 03.12.2013, 04:22
quelle

3 Antworten

12

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.

    
GladstoneKeep 03.12.2013, 04:46
quelle
2

Sie müssen Ihre Parameter grundsätzlich manuell konvertieren. Idealerweise abstrahiere dies in eine Controller-Methode, um deine aktuelle Methode sauber zu halten.

%Vor%     
Satya Kalluri 03.12.2013 04:59
quelle
0

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: Ссылка

    
Ryan Francis 06.04.2017 23:01
quelle