2010-05-05 4 views
0

기본 레일스 블로그 애플리케이션에있는 코드 라인은 주석의 수에 대한 접미사가 "코멘트"(1 경우)인지 "코멘트"(0 또는 2)인지 결정합니다레일스 뷰에서 조건부 아웃소싱

<%= post.comments.count() %> <%= post.comments.count() == 1 ? "comment" : "comments" -%> 

내가 좀 더 연구 할 것을 쓰고,이 논리가 실제로 들어 가지 않을 것을 깨달았다 때문에, 그러나 : +) 현재

,이처럼 보이는 뷰에서 선이다 보기.

실제 장소가 게시물 도우미에 있다고 가정하는 것이 맞습니까?

어떻게 구현할 수 있습니까?

답변

2

레일은 이것에 대한 내장 도우미 pluralize라고했습니다

<%= pluralize(post.comments.count, 'comment') %> 

이 자동으로 인쇄됩니다 예를 들어, "1 개의 댓글"또는 "4 개의 댓글."

P. Ruby 괄호에서 메서드 인수는 일반적으로 선택 사항이며 아무런 인수도 전달하지 않으면 괄호를 생략하는 것이 일반적입니다 (예 : comments.countcomments.count()). 물론 코드를 읽는 다른 사람들의 모호성을 줄이려면 괄호를 사용해야합니다. 그러나 인수를 전달하지 않을 때는 거의 절대 필요하지 않습니다.

+1

따옴표 붙이지 말아야합니까? –

+0

지금은 ... = P –

+0

글쎄, 저것 좀 봐. 좋은. 괄호에 감사드립니다. –

1

Jordan's answer 이 특별한 경우에해라.

귀하의 질문에 대답하기 위해, 이것은 아마도 귀하의 취향에 달려 있습니다. pluralize 도우미가 존재하지 않고 위와 같은 코드를 사용해야한다면 실제로보기에 배치하는 데는 문제가 없습니다. 여러 위치에 주석 수를 표시하려는 경우 부분적으로 표시됩니다. 이 특정 사례의 경우, 도우미에 넣는 것이 필요하지 않습니다. 빠른 라이너입니다. 그것이 더 크거나 더 복잡한 경우 다음 당신은 도우미에 넣어 줄.