shallow rails examples concern ruby-on-rails ruby routes query-string rails-routing

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.