2012-04-18 1 views

답변

6

<%= @event.date || "TBA" %>해야합니다.

귀하의 의견에 따라 예, 모델에서이 작업을 수행 할 수 있지만 좋지 않습니다. 왜?

우선, 데이터를 표시하는 것이므로 그 이유 때문에 뷰에 속합니다.

둘째, 문제가 발생할 수 있습니다. 모델에서 수행 한 경우 @event.date은 날짜와 때로는 문자열을 반환하는 경우가 있습니다. @event.date.hourdate"TBA"이라고 부르는 경우 어떻게됩니까? 오류가 발생합니다. 유일한 수정은 사방에 그것을 검사하는 것이고, 그것은 끔찍할 것이다.

def date_or_tba(date) 
    date || "TBA" 
end 

그래서 당신이 다음보기에서 작성할 수 있습니다 :

<%= date_or_tba @event.date %> 

당신이 정말로가는 경우

는 다음과 같이 보일 수 application_helper.rb에서 도우미 메서드를 만들 수 그에게 많은 일을해야합니다

타자를 치는 것이 적지 만 문자열 "TBA"의 사용을 한 곳으로 제한하는 이점이 있습니다. 즉, 변경해야하는 경우 (예를 들어, 목적으로) 정말 쉽습니다.

+0

굉장합니다. 그게 바로 내가 한 일이야. 내 모델에서이 작업을 수행 할 수있는 방법이 있나요? @ event.date를 "TBA"로 표시하면 어디에서든지 호출 할 수 있습니까? – Synthesezia

+0

당신은 할 수는 있지만, 강연을 강력히 권고합니다. 나는 내 대답에 대해 자세히 설명 할 것이다. – Russell

+0

좋아요, 왜 그렇게 나쁜 생각인지 이해합니다. 도우미를 추가하는 것은 갈 길과 같습니다. 감사! – Synthesezia

관련 문제