2011-10-20 2 views
0

그래서 여기에 무엇을 해야할지 모르겠습니다.레일 협회, nilClass, 시도 및 Demeter의 법

당신은 has_one 회원 인 주문이 있다고합시다.

say, my_order.member.first_name을 호출하면 연결된 멤버가 삭제 된 곳에서 nilClass 오류가 발생할 수 있습니다. my_order.member.try (: first_name) .. 할 수 있지만 그냥 바보 같은 해결 방법처럼 보인다. 나는 모든 곳에서 많은 시도를하고 싶지 않다.

나는 [이 기사가] Nil 객체에 대해 읽었습니다 : http://robots.thoughtbot.com/post/8181879506/if-you-gaze-into-nil-nil-gazes-also-into-you?

좋은 물건. 하지만 레일스는 아주 흔한 일이기 때문에 레일스는 이것에 도움이 될 것이라고 생각합니다. 여러분의 커스텀 클래스 나 뭔가를 쓰는 대신에.

+0

[이 질문에] (와 끝까지 http://stackoverflow.com/questions/7789314/rails-activerecord-how-can-i-make-this-more -concise/7789348 # 7789348)도이 문제를 해결합니다. –

+0

주문서에 관련 회원이 없다고 가정해도 괜찮습니까? – Eric

답변

1

당신은 delegate을 사용할 수 있으며, 당신이 my_order.first_name