ruby-on-rails - concern - routes rails examples
Rastrea la cadena de consulta con un punto(o punto). (2)
match "confirm/:code/:email" => "confirm#index", :email => /.*/
También sería mejor establecer el método get
aquí, creo
get "confirm/:code/:email" => "confirm#index", :email => /.*/
Actualmente estoy tratando de manejar RoR. Estoy pasando dos cadenas en mi controlador. Uno es una cadena hexadecimal al azar y el otro es un correo electrónico. El proyecto es para una simple verificación de correo electrónico en una base de datos. El problema que tengo es cuando ingreso algo como a continuación para probar mi página:
http://signup.testsite.local/confirm/da2fdbb49cf32c6848b0aba0f80fb78c/bob.villa@gmailcom
Todo lo que obtengo en mi hash de parámetros :email
es ''bob''
. Salí de la .
entre gmail
y com
out porque eso haría que la coincidencia no funcionara en absoluto.
Mi coincidencia de enrutamiento es la siguiente:
match "confirm/:code/:email" => "confirm#index"
Lo cual parece lo suficientemente simple para lo que necesito. Estoy teniendo dificultades para tratar de averiguar cuál es el problema y realmente cómo buscar una respuesta. Cualquier ayuda u orientación sería muy apreciada.
Su problema es que Rails está tratando de interpretar .villa@gmailcom
como una especificación de formato (como .html
o .json
). AFAIK, la solución estándar (o al menos la que yo uso) es agregar esto a tu ruta:
:requirements => { :email => /.*/ }
Esto engaña a Rails para que no intente ser inteligente sobre qué :email
contiene.
No me sorprende que no puedas encontrar nada, buscando en Google "@" o "." no hace nada útil.