2014-09-26 59 views
1

有沒有辦法用一個值來檢查兩個條件?如果兩個值的條件爲OR

下面是這個例子。當管理員從網站註冊時,管理員應該在數據庫中自動設置爲true。

admin_1 = [email protected] 
admin_2 = [email protected] 
if email_from_input_field == (admin_1 || admin_2) 
    user.admin == true 

admin_1將被設置爲true,而不是admin_2。

+3

沒有多少我不清楚。 – 2014-09-26 07:34:14

+1

我編輯了這個問題。我知道,我可以使用類似「email == admin_1 ||」的內容電子郵件== admin_2'。但是,這對我來說看起來有點多餘:) – AdvanceInBeginning 2014-09-26 07:39:30

回答

1

你寫它的方式,它的計算結果

email == true or false

因爲admin_1 || admin_2會給出一個布爾值,檢查這些變量中是否存在與否。

您可以使用此:

[ admin_1, admin_2].include? email

它是什麼檢查的email值存在的admin_1, admin_2

2.1.0 :001 > a1 = 'arindam' => "arindam" 2.1.0 :002 > a2 = 'ari' => "ari" 2.1.0 :003 > email = 'ari' => "ari" 2.1.0 :004 > [a1,a2].include? email => true

+0

不..根據OP的帖子,這不是正確的答案。 – 2014-09-26 07:34:59

+0

'email == true or false' - 如果電子郵件'nil'這個返回'false'並且如果電子郵件'true'返回'false'。 – 2014-09-26 07:35:01

+0

這可以幫助我,看起來像這是正確的紅寶石方式來管理一個條件與多個值,但一個參數。謝謝 – AdvanceInBeginning 2014-09-26 07:53:31

0

陣列中的第一個解釋這是什麼意思:

if email == (admin_1 || admin_2) 
    user.admin == true 

先評估(admin_1 ||這意味着,如果admin_1的值是falsenil那麼只考慮admin_2。所以,如果你獲得的回報比假的或零,實際上是檢查這樣的條件以外admin_1任何東西的價值:

if email == admin_1 

只是忽略admin_2。

,如果你想既更好地做好檢查條件:

if ((email == admin_1) || (email == admin_2))