Ho un percorso per i miei utenti come /iGEL/contributions
, che funziona bene. Ma ora un utente registrato con un nome come “A. e.B.”, e ora la rotta non riesce a corrispondere, dal momento che il nome contiene punti.
Il mio percorso:
get "/:user/contributions" => 'users#contributions'
Qualche idea?
Vedi la casella di informazioni blu qui :
Per default i segmenti dinamici non accettano i punti – questo perché il punto viene usato come separatore per i percorsi formattati. Se è necessario utilizzare un punto all’interno di un segmento dinamico, aggiungere un vincolo che lo sovrascrive, ad esempio
:id => /[^\/]+/
consente qualsiasi cosa tranne una barra.
Questo per esempio sarebbe:
get "/:user/contributions" => 'users#contributions', :constraints => { :user => /[^\/]+/ }
Se il tuo segmento variabile è l’ultimo, anche l’ [^\/]
regex mangerà il formato. In tal caso, usa piuttosto:
/([^\/]+?)(?=\.json|\.html|$|\/)/
Sembra che il seguente link risponda alla tua domanda.