在rails中,如果我测试嵌套参数并且没有:parent已分配,则会抛出错误。所以,例如,
params[:page][:childpage][:grandchildpage].present?
throws'如果没有:page或:childpage,你有一个你没想到它的nil对象。类似地,
demopage = @page.childpage.grandchildpage.present?
抛出类似的东西。
不敢显示它的面部的解决方案是一大堆嵌套的if语句,这显然不够好。所以,问题是......如果任何父元素为空,那么返回false的标准(优雅)方式是什么而不是抛出错误?一种救援方法,还是有更好的东西?
我猜这很常见,只是想知道标准解决方案是什么。
干杯...
答案 0 :(得分:1)
对于第二个,您可以使用和声明。
demopage = @page &&
@page.childpage &&
@page.childpage.grandchildpage &&
@page.childpage.grandchildpage.present?