2011-07-06 4 views
2

에 대한 TRY을 사용하는 방법은 다음과 같습니다레일 - 중첩 기록

스레드가 선택하는 thread_widget을 경우 잘 작동
:caption => thread.thread_widgets.first.widgetable.title 

. 주어는 스레드가 더 thread_widgets을가없는 경우 다음

undefined method `widgetable' for nil:NilClass 

이 오류는 오류 페이지를 죽이지 않도록 내가 시도()를 사용할 수있는 방법이 선택 사항입니까?

감사

답변

4
:caption => (o = thread.thread_widgets.first) && o.widgetable.title 

하지만 당신은 너무 Object#try, 요청 :

:caption => thread.thread_widgets.first.try(:widgetable).try(:title)