Rails 3:在测试嵌套参数时避免使用嵌套ifs

时间:2011-05-24 23:26:51

标签: ruby-on-rails-3 nested

在rails中,如果我测试嵌套参数并且没有:parent已分配,则会抛出错误。所以,例如,

   params[:page][:childpage][:grandchildpage].present?

throws'如果没有:page或:childpage,你有一个你没想到它的nil对象。类似地,

   demopage = @page.childpage.grandchildpage.present?

抛出类似的东西。

不敢显示它的面部的解决方案是一大堆嵌套的if语句,这显然不够好。所以,问题是......如果任何父元素为空,那么返回false的标准(优雅)方式是什么而不是抛出错误?一种救援方法,还是有更好的东西?

我猜这很常见,只是想知道标准解决方案是什么。

干杯...

1 个答案:

答案 0 :(得分:1)

对于第二个,您可以使用和声明。

demopage = @page &&
  @page.childpage &&
  @page.childpage.grandchildpage &&
  @page.childpage.grandchildpage.present?