0

我在一个基本的 Rails 博客应用程序中有一行代码,用于确定评论数量的后缀是“comment”(如果为 1)还是“comments”(0 或 2+)

目前,它是视图中的一行,如下所示:

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

但是,自从我写了之后,我做了更多的研究,并意识到这个逻辑实际上不应该出现在视图中。

我是否可以假设真正的位置是在帖子助手中?

我该如何实施?

4

2 回答 2

2

Rails 有一个内置的帮助器,称为pluralize

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

这将自动打印例如“1 条评论”或“4 条评论”。

PS 在 Ruby 中,方法参数周围的括号通常是可选的,当您不传递任何参数时,通常会省略括号,即comments.countvs. comments.count()。(当然,当括号有助于减少其他人阅读您的代码时的歧义时,您应该使用括号——但当您不传递任何参数时,这几乎是不必要的。)

于 2010-05-05T15:00:15.220 回答
1

乔丹的答案是在这种特殊情况下你想要做什么。

要回答您的问题,这可能取决于您的偏好。如果复数帮助器不存在并且您必须使用上述代码,那么将它放在视图中确实没有问题。如果您想在多个位置显示评论计数,那将是部分显示。对于这种特定情况,我认为没有必要将其放入助手中-它是一种快速的单线。如果它更大或更复杂,那么您会将其放入助手中。

于 2010-05-05T15:18:30.227 回答