one - ruby operators
Prueba si string no es igual a cualquiera de dos cadenas (2)
<% unless [''sessions'', ''registrations''].include?(controller_name) %>
o
<% if [''sessions'', ''registrations''].exclude?(controller_name) %>
Acabo de aprender RoR así que por favor tengan paciencia conmigo. Estoy tratando de escribir una instrucción if o con cadenas. Aquí está mi código:
<% if controller_name != "sessions" or controller_name != "registrations" %>
He intentado de muchas otras maneras, usando paréntesis y ||
Pero nada parece funcionar. Tal vez sea por mi experiencia en JS ...
¿Cómo puedo probar si una variable no es igual a la cadena uno o la cadena dos?
Este es un problema de lógica básica:
(a !=b) || (a != c)
siempre será cierto siempre que b! = c. Una vez que recuerdas eso en lógica booleana
(x || y) == !(!x && !y)
entonces puedes encontrar tu camino para salir de la oscuridad.
(a !=b) || (a != c)
!(!(a!=b) && !(a!=c)) # Convert the || to && using the identity explained above
!(!!(a==b) && !!(a==c)) # Convert (x != y) to !(x == y)
!((a==b) && (a==c)) # Remove the double negations
La única forma de que (a == b) && (a == c) sea verdadero es para b == c. Entonces, dado que has dado b! = C, la sentencia if
siempre será falsa.
Solo adivinando, pero probablemente quieras
<% if controller_name != "sessions" and controller_name != "registrations" %>