如果a = false
和b = 2
有简洁的方法可以实现这一目标吗?仅使用return a unless b
返回'nil'而不是'2'。
我有
def checkit
return a unless b
b
end
这句话会叫b两次吗?
现实案例是:
def current_user
@current_user ||= authenticate_user
end
def authenticate_user
head :unauthorized unless authenticate_from_cookie
end
def authenticate_from_cookie
.
if user && secure_compare(user.cookie, cookie)
return user
else
return nil
end
end
答案 0 :(得分:4)
试试这个:
( b == true ) ? a : false
其中a是您需要返回的值
答案 1 :(得分:1)
我不知道你为什么false
存储在变量a
中,所以我省略了。据我了解,您希望将值传递给方法checkit
,如果其布尔值为true
,则应返回该值(这意味着除了值nil
和{{1}之外的所有内容}),否则返回值。在这种情况下,只需使用:
false