我该如何重构这个条件助手呢?

时间:2017-03-06 13:12:03

标签: ruby-on-rails

我想要实现的是一个标签,显示页面上有多少条评论。目前代码可以显示我需要的内容,但我相信这不是正确的方法,可以使用一些重构。

另外,我应该将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

1 个答案:

答案 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>