Routing-Einschränkungen für Rails und UTF-8

8

Ich muss Routen wie /:slug behandeln. Die Nacktschnecken sind anderswo beschränkt, um zu passen:

%Vor%

Die offensichtlichen Wege:

%Vor%

funktioniert gut mit ASCII-URLs wie /mu-is-too-short und /where.is.pancakes.house , aber alles fällt auseinander, wenn die URL /µ-is-too-short ist. Der Browser sendet dies an den Server:

%Vor%

und Rails versucht, die codierte %C2%B5-is-too-short gegen die Einschränkung :slug zu prüfen und schlägt fehl, weil % keine \p{Alnum} ist.

Ich habe zwei kludges gefunden:

%Vor%

Das :slug => /[^\/]+/ in der Sekunde wird benötigt, damit Rails nicht daran denkt, dass .b in a.b eine Formatendung ist.

Gibt es eine Möglichkeit, wie sich Rails vernünftig verhalten und das dekodierte :slug gegen die Einschränkungen überprüfen oder muss ich die Beschränkungen lockern oder manuell machen?

    
mu is too short 19.09.2013, 22:05
quelle

1 Antwort

0

Sie können ein Lambda für die Abhängigkeit verwenden und auf diese Weise die Codierung ändern (aus Ссылка ):

%Vor%     
Houen 01.11.2013 14:33
quelle