我有一个哈希值:
request.session["flash"]["alert"]
我需要为上面的哈希值写一个if
条件,如:
if request.session["flash"]
if request.session["flash"]["alert"]
#Do something
end
end
我想将if
条件组合在一行中,如:
if request.session["flash"] && request.session["flash"]["alert"]
#do something
end
但如果不存在flash
,则会抛出一个nil类错误。如何在一行中写入两个if
条件,如果一个条件通过则执行另一个条件?
答案 0 :(得分:0)
你测试过你的第二个片段了吗?据我所知,Ruby对if条件使用惰性求值。如果第一个条件为false,则不会对第二个条件求值,因此甚至不会在nil对象上调用[]方法。
来源:http://strugglingwithruby.blogspot.com/2008/11/conditional-statements.html