2011-05-24 73 views
0

在rails中,如果我測試嵌套參數,並且沒有:parent賦值,則會引發錯誤。因此,例如,Rails 3:在測試嵌套參數時避免嵌套ifs

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

throws'如果沒有:頁面或:childpage,您有一個沒有期待的無對象。同樣,

demopage = @page.childpage.grandchildpage.present? 

拋出類似的東西。

不敢顯示它的解決方案是一大堆嵌套的if語句,顯然不夠好。所以,問題是......如果任何父元素爲空,那麼返回false的標準(優雅)方式是什麼,而不是拋出錯誤?救援方法,還是有更好的?

我猜這很常見,只是想知道標準解決方案是什麼。

乾杯...

回答

1

對於第二個你可以使用和聲明。

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