我在基本的Rails博客应用程序中有一行代码,用于确定注释数量的后缀是“注释”(如果为1)还是“注释”(0或2 +)
目前,视图中的一行看起来像这样:
<%= post.comments.count() %> <%= post.comments.count() == 1 ? "comment" : "comments" -%>
然而,自从我写了以来我已经做了更多的学习,并意识到这个逻辑实际上不应该在视野中。
我是否正确地认为这个真正的位置在帖子助手?
我该如何实施?
答案 0 :(得分:2)
Rails有一个内置帮助器,名为pluralize
:
<%= pluralize(post.comments.count, 'comment') %>
这将自动打印,例如“1条评论”或“4评论。”
P.S。在Ruby括号中,方法参数通常是可选的,当你没有传递任何参数时,通常不使用括号,即comments.count
与comments.count()
。 (当然,当它有助于减少其他人阅读代码时的歧义时,你应该使用括号 - 但是当你没有传递任何参数时,这几乎是不必要的。)
答案 1 :(得分:1)
Jordan's answer是您在这种特殊情况下想要做的事情。
要回答您的问题,这可能取决于您的偏好。如果复数帮助器不存在而你必须使用上面的代码,那么将它放在视图中确实没有问题。如果你想在多个地方显示评论计数,那将是部分的。对于这个具体案例,我认为没有必要把它放在帮助器里 - 这是一个快速的一个班轮。如果它是更大或更复杂的那么你会把它放在帮手中。