2012-03-25 17 views
12

Estoy tratando de utilizar expresiones regulares como el condicional en un Ruby (1.9.2) si la declaración pero sigue reapareciendo cierto incluso cuando se evalúa la expresión regular a ceroUsando expresiones regulares en Ruby si la condición

if (params[:test] =~ /foo/) 
    return "match" 
else 
    return "no match" 
end 

Lo anterior devuelve "coincidencia", incluso cuando Rails.logger.info(params[:test]) muestra de prueba como establece en "bar"

+1

No puedo reproducir esto (y no debería suceder). Probablemente su suposición de que 'params [: test] ==" bar "' es defectuoso. –

+0

Acabo de verificarlo en la línea de comandos de irb y no puedo reproducir su situación. '" bar "= ~/foo /' devuelve nil. Su problema está en otro lugar ... –

+0

Tengo Rails.logger.info (params [: test]) la línea sobre la declaración if y emite "bar" – Exupery

Respuesta

33
if params[:test] =~ /foo/ 
    # Successful match 
else 
    # Match attempt failed 
end 

funciona para mí. Depurar lo que está en params[:test]

Cuestiones relacionadas