2012-02-17 4 views
0

で表示からクエリを削除し、プロセスへの正しいアプローチ:レール3.1 - Iは、以下たビューにおいてコントローラまたはモデル

<% @top_posts.each do |post| %> 
    <li> 
    <%= post.title %><br /> &nbsp;&nbsp; 
    <%= 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を反復する必要がありますか?それは正しいアプローチですか?

また、投稿モデルのスコープの仕事ですか? ActiveRecordの魔法はありますか?私はまだRoRでかなり新人ですが、私が理解していないことをちょうど見始めています。

答えて

2

あなたの基準に応じて最初のコメントを取得するには、Postモデルにメソッドを追加します。ビューは、comment_path(post.relevant_comment)のようになります。

+0

意味があり、非常に単純です。ありがとう。 –

関連する問題