在视图中,我有以下内容:
<% @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
查询被视为不良格式。但是,由于我将post和comment数据结合起来创建一个列表项,我很难理解如何获得控制器中内置的这个“组合包”数据。我应该在控制器中构建某种@hash
,然后在视图中迭代@hash.each
吗?这是正确的方法吗?
或者我的Post模型上的作品是?是否有一些我想念的ActiveRecord魔法让这很容易?我仍然是RoR的新秀,我刚刚开始看到我有多么不理解。
答案 0 :(得分:2)
我要做的是在我的Post
模型中添加一个方法,根据您的标准获得第一条评论。该视图看起来像comment_path(post.relevant_comment)
。