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.