有没有办法检查一个值,两个条件?
以下是这个例子。当管理员从网站注册时,管理员应该在数据库中自动设置为真。
admin_1 = admin_1@company.com
admin_2 = admin_2@company.com
if email_from_input_field == (admin_1 || admin_2)
user.admin == true
admin_1将设置为管理员,但不是admin_2。
答案 0 :(得分:2)
你写它的方式,它评估为
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
答案 1 :(得分:0)
首先解释这个含义:
if email == (admin_1 || admin_2)
user.admin == true
首先评估(admin_1 || admin_2)
这意味着,如果admin_1
的值为false
或nil
,则只考虑admin_2
。因此,如果你得到admin_1
除了false或nil以外的任何值,你实际上是在检查这样的条件:
if email == admin_1
忽略admin_2。
如果你想更好地检查条件:
if ((email == admin_1) || (email == admin_2))