Вывод условного из представления Rails - PullRequest
0 голосов
/ 05 мая 2010

У меня есть строка кода в основном приложении на блоге Rails, которое я сделал, чтобы определить, должен ли суффикс к числу комментариев быть «комментарием» (если 1) или «комментариями» (0 или 2 +)

В настоящее время это линия на виде, которая выглядит следующим образом:

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

Тем не менее, с тех пор как я написал, что еще немного изучил и понял, что эта логика на самом деле не должна идти в поле зрения.

Правильно ли я предполагаю, что реальное место для этого - помощник по сообщениям?

Как я могу это реализовать?

Ответы [ 2 ]

2 голосов
/ 05 мая 2010

Rails имеет встроенный помощник для этого, который называется pluralize:

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

Это автоматически напечатает, например, «1 комментарий» или «4 комментария».

P.S. В скобках Ruby аргументы метода обычно необязательны, а когда вы не передаете никаких аргументов, принято оставлять скобки, т. Е. comments.count против comments.count(). (Конечно, вы должны использовать круглые скобки, когда это помогает уменьшить неоднозначность для других людей, читающих ваш код - но это почти никогда не требуется, когда вы не передаете никаких аргументов.)

1 голос
/ 05 мая 2010

Ответ Джордана - это то, что вы хотите сделать в этом конкретном случае.

Чтобы ответить на ваш вопрос, это, вероятно, зависит от ваших предпочтений. Если помощника множественного числа не существует, и вам пришлось использовать код, подобный приведенному выше, на самом деле не возникает проблемы с его отображением. Если вы хотите отобразить количество комментариев в нескольких местах, это будет частично. Для этого конкретного случая, я думаю, что помещать его в помощник не нужно - это быстрый вкладыш. Если бы оно было больше или сложнее , то вы бы положили его в помощник.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...