В представлении у меня есть следующее:
<% @top_posts.each do |post| %>
<li>
<%= post.title %><br />
<%= link_to "Most popular comment", comment_path( post.comments.order("vote_cnt DESC").first )
</li>
<% end %>
Я знаю, что считать запрос post.comments.order("vote_cnt DESC").first
в плохом виде считается плохим тоном. Однако, поскольку я объединяю данные постов и комментариев для создания одного элемента списка, мне трудно понять, как получить этот «комбинированный пакет» данных, встроенный в контроллер. Должен ли я создать какой-то @hash
в контроллере, а затем повторить на @hash.each
в представлении? Это правильный подход?
Или это работа для прицела в моей модели Post? Есть ли какая-то магия ActiveRecord, которую мне не хватает, которая делает это легким? Я все еще довольно новичок в RoR и только начинаю понимать, насколько сильно я не понимаю.