我只是在学习RoR,所以请耐心等待。我试图用字符串写一个if或语句。这是我的代码:
<% if controller_name != "sessions" or controller_name != "registrations" %>
我尝试了许多其他方法,使用括号和||
但似乎没有任何效果。也许是因为我的JS背景...
如何测试变量是否不等于字符串1或字符串2?
答案 0 :(得分:15)
<% unless ['sessions', 'registrations'].include?(controller_name) %>
或
<% if ['sessions', 'registrations'].exclude?(controller_name) %>
答案 1 :(得分:13)
这是一个基本的逻辑问题:
(a !=b) || (a != c)
只要b!= c,总是为真。一旦你记住了布尔逻辑
(x || y) == !(!x && !y)
然后你就可以找到离开黑暗的道路了。
(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
(a == b)&amp;&amp; (a == c)为真是对于b == c。因此,既然你已经给出了b!= c,那么if
语句将始终为false。
猜猜,但可能你想要
<% if controller_name != "sessions" and controller_name != "registrations" %>