我剛剛學習RoR,請耐心等待。我正在嘗試寫一個if或帶有字符串的語句。這裏是我的代碼:測試字符串是否與兩個字符串中的任何一個不相等
<% if controller_name != "sessions" or controller_name != "registrations" %>
我試過很多其他方法,使用括號和||
但似乎沒有任何工作。也許是因爲我的JS背景...
我該如何測試一個變量是不是等於字符串1還是字符串2?
我剛剛學習RoR,請耐心等待。我正在嘗試寫一個if或帶有字符串的語句。這裏是我的代碼:測試字符串是否與兩個字符串中的任何一個不相等
<% if controller_name != "sessions" or controller_name != "registrations" %>
我試過很多其他方法,使用括號和||
但似乎沒有任何工作。也許是因爲我的JS背景...
我該如何測試一個變量是不是等於字符串1還是字符串2?
這是一個基本的邏輯問題:
(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)& &(A == c)中是真實的是對於b ==℃。因此,既然你已經給出b!= c,那麼if
語句將始終爲假。
只是猜測,但可能你想在
<% if controller_name != "sessions" and controller_name != "registrations" %>
<% unless ['sessions', 'registrations'].include?(controller_name) %>
或
<% if ['sessions', 'registrations'].exclude?(controller_name) %>
搖滾!很好的解釋,謝謝:) – PropSoft