Ruby on rails 从Rails视图中分解出条件

Ruby on rails 从Rails视图中分解出条件,ruby-on-rails,refactoring,helper,Ruby On Rails,Refactoring,Helper,我在自己开发的一个基本Rails博客应用程序中有一行代码,用于确定注释数的后缀是“comment”(如果为1)还是“comments”(0或2+) 当前,它是视图中的一条线,如下所示: <%= post.comments.count() %> <%= post.comments.count() == 1 ? "comment" : "comments" -%> 然而,自从我写了这篇文章之后,我做了更多的研究,并且意识到这个逻辑实际上不应该出现在视图中 我认为

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

当前,它是视图中的一条线,如下所示:

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

然而,自从我写了这篇文章之后,我做了更多的研究,并且意识到这个逻辑实际上不应该出现在视图中

我认为这件事的真正位置是在posts helper中,对吗


如何实现它?

Rails有一个内置的帮助程序,名为:


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


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

Rails有一个内置的帮助程序,称为:


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

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

就是在这种特殊情况下要做的事情

要回答您的问题,这可能取决于您的偏好。如果pluralize助手不存在,并且您必须使用如上所述的代码,那么将其放在视图中确实没有问题。如果您希望在多个位置显示注释计数,则将以部分方式显示。对于这个特定的例子,我认为没有必要把它放在helper中——这是一个快速的一行程序。如果它更大或更复杂,那么你应该把它放在一个助手中。

就是在这种特殊情况下你要做的


要回答您的问题,这可能取决于您的偏好。如果pluralize助手不存在,并且您必须使用如上所述的代码,那么将其放在视图中确实没有问题。如果您希望在多个位置显示注释计数,则将以部分方式显示。对于这个特定的例子,我认为没有必要把它放在helper中——这是一个快速的一行程序。如果它更大或更复杂,那么你应该把它放在一个助手中。

不应该引用
comment
吗?好吧,看看这个。美好的谢谢括号里的提示。不应该引用
注释
吗?好吧,看看这个。美好的谢谢你在括号里的提示。
<%= pluralize(post.comments.count, 'comment') %>