【发布时间】:2014-07-30 07:10:18
【问题描述】:
我有一个哈希值:
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 条件,如果其中一个条件通过则执行另一个条件?
【问题讨论】:
-
很确定 if request.session["flash"] && request.session["flash"]["alert"] 不应该抛出一个 nil 类错误......相反,它应该评估为 if当 flash 不存在时为零,这将被评估为 false
-
这一行应该可以工作,如果
session['flash']为nil,则第二个条件永远不会运行 -
if request.session['flash'].try(:[], 'alert')应该可以工作 -
你是说这会抛出
nil类错误吗?或者您是说这确实 抛出了nil类错误?如果它确实,那么确切的错误是什么? -
为什么不使用
flash[:alert]访问闪存?
标签: ruby-on-rails ruby conditional