2013-06-01 11 views
9

के बराबर नहीं है, तो मैं सिर्फ आरओआर सीख रहा हूं इसलिए कृपया मेरे साथ भालू। मैं तारों के साथ एक if या कथन लिखने की कोशिश कर रहा हूँ।परीक्षण करें कि स्ट्रिंग दो स्ट्रिंग्स

<% if controller_name != "sessions" or controller_name != "registrations" %> 

मैं कई अन्य तरीकों से, कोष्ठकों का उपयोग और || लेकिन कुछ भी काम करने के लिए लगता है की कोशिश की है: यहाँ मेरी कोड है। शायद यह मेरी जेएस पृष्ठभूमि की वजह से है ...

यदि कोई चर स्ट्रिंग एक या स्ट्रिंग दो के बराबर नहीं है तो मैं कैसे परीक्षण कर सकता हूं? !

(a !=b) || (a != c) 

हमेशा ख रूप में लंबे समय = ग के रूप में सच हो जाएगा:

उत्तर

9

यह एक बुनियादी तर्क समस्या है। एक बार आपको याद है कि बुलियन तर्क

(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 

के लिए एक ही रास्ता (एक == ख) & & (एक == ग) सच के लिए ख == सी है। इसलिए चूंकि आपने बी दिया है! = सी, if कथन हमेशा गलत होगा।

बस अनुमान लगा, लेकिन शायद आप पर

<% if controller_name != "sessions" and controller_name != "registrations" %> 
+0

रॉक चाहते हैं! महान स्पष्टीकरण, धन्यवाद :) – PropSoft

13
<% unless ['sessions', 'registrations'].include?(controller_name) %> 

या

<% if ['sessions', 'registrations'].exclude?(controller_name) %> 
संबंधित मुद्दे