这里有一个新手问题,但我保证谷歌真的很难。我想要做的是测试对象的属性并在一行中测试同一对象的存在。我能做到这一点:
user = User.find_by_id(user_id)
if user
if user.access_token == params[:access_token]
puts "success"
else
puts "failure"
end
else
puts "failure"
end
我想认真重新考虑这一点并摆脱嵌套的if语句。事情是,我不能做像
这样的事情if user && user.access_token
因为在用户实际为nil的情况下,Ruby在尝试评估nil.access_token时会抛出错误。有人知道将这个重新分解成一行的实际正确方法吗?甚至是可能的,还是嵌套的if语句是唯一的方法?
答案 0 :(得分:1)
执行user && user.access_token
很好,因为Ruby会在遇到一个false
条件时停止评估表达式。