저는 레일스에서 잠시 동안 작업 해 왔습니다. 끊임없이 제가하고있는 한 가지 일은, 속성이나 객체가 표시되기 전에 어떤 속성이나 객체가 제보기 코드에 nil인지 확인하는 것입니다 . 이것이 항상 최고의 아이디어인지 궁금해지기 시작했습니다.Ruby on Rails의 뷰에서 nil 확인하기
내 응용 프로그램이 사용자 입력에 의존하므로 예상치 못한 일이 발생할 수 있습니다. 프로그래밍에서 한 가지 사실을 배웠다면 프로그래머가 생각하지 않은 것들을 사용자가 입력하는 것이 런타임 오류의 가장 큰 원인 중 하나라는 것입니다. nil 값을 확인함으로써 나는 그것을 회피하여 내 견해가 정상적으로 문제를 처리하도록하고 있습니다.
내가 일반적으로 여러 가지 이유로 내 모델 또는 컨트롤러 코드에서 비슷한 값 또는 유효하지 않은 값 검사가 있지만 문제가 있습니다. 가장 엄격한 의미에서 코드 중복이라고 부르지는 않겠지 만 매우 건조한 것처럼 보이지는 않습니다. 내 컨트롤러에서 무 객체를 이미 확인했다면 내 뷰에서 객체가 실제로 nil이 아니라고 가정한다면 괜찮습니까? 표시 될 수없는 속성의 경우 매번 확인하는 것이 나에게 도움이되지만 객체 자체에 대해서는 가장 좋은 방법이 무엇인지 확실하지 않습니다.
여기에 내가 이야기하고 단순화하지만 전형적인 예입니다 : 이것은 좋은 생각이
컨트롤러 코드
def show
@item = Item.find_by_id(params[:id])
@folders = Folder.find(:all, :order => 'display_order')
if @item == nil or @item.folder == nil
redirect_to(root_url) and return
end
end
보기 코드
<% if @item != nil %>
display the item's attributes here
<% if @item.folder != nil %>
<%= link_to @item.folder.name, folder_path(@item.folder) %>
<% end %>
<% else %>
Oops! Looks like something went horribly wrong!
<% end %>
아니면 그냥이다 바보?