我想要实现的是一个标签,显示页面上有多少条评论。目前代码可以显示我需要的内容,但我相信这不是正确的方法,可以使用一些重构。
另外,我应该将h1
标记移到视图中还是content_tag
可以接受?
如果没有评论,我需要的是“成为评论的第一人”,如果有评论,则将标签复数化。
感谢您的帮助。
def number_of_comments
@review.comments.count
end
def render_comments_count
if number_of_comments == 0
content_tag(:h1, "Be the first to comment")
elsif number_of_comments == 1
content_tag(:h1, "1 comment")
else
content_tag(:h1, number_of_comments) + content_tag(:h1, "comments")
end
end
end
答案 0 :(得分:0)
您可以使用复数并将h1提取到视图:
def number_of_comments
@review.comments.count
end
def render_comments_count
if number_of_comments.zero?
'Be the first to comment'
else
"#{number_of_comments} #{'comment'.pluralize(number_of_comments)}"
end
end
然后,在视图中:
<h1><%= render_comments_count %></h1>