Помогите рефакторинг этой логики контроллера, это должно быть помощником? - PullRequest
1 голос
/ 17 июля 2011

Так что, если я перечисляю записи в блоге, и под каждой записью я отображаю 5 комментариев.Под последним комментарием есть ярлык:

'show more'

или

'add comment'

Логика для этого в настоящее время находится в моем контроллере:

@posts.each do |p|

  if p.comment_count > 3
    p.some_label = 'show more'
  else
    p.some_label = 'add comment'
  end

end

Iпришлось добавить атрибут «some_label» в мою модель сообщений только для этой цели.

Это кажется правильным или оно должно быть пересмотрено?

1 Ответ

1 голос
/ 17 июля 2011

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

Я бы посоветовал перейти к маршрутуВы упомянули, используя вспомогательный метод.Когда вы дойдете до точки рендеринга ссылки под сообщением, просто позвоните помощнику, который может быстро проверить количество комментариев к этому сообщению и просто вернуть строку (или полную ссылку), которую вы ищете вэта ситуация.

Помимо определения количества комментариев к посту, этой логике вообще не нужно напрямую взаимодействовать с моделью.

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