投稿コントローラーにインデックス アクションがあり、ビューにはすべての投稿が各投稿の後にコメントと共に表示されます。私の現在の実装は、埋め込まれた html ファイルの、各投稿のすべてのコメントを取得するために@posts.each do |p|
使用しているブロックにあります。p.comments
ただし、ビューだけでこれを行うのは良くないようですが、コントローラーでそれを行う方法が見つかりません。誰でも提案できますか?それとも、これは正しい方法ですか?
質問する
106 次
2 に答える
0
Arie は n + 1 の問題を解決することに定評があります。ビューに関しては、同じアプローチを引き続き使用できますが、コレクションのパーシャルを使用する方が適切です。
# posts/index.html.erb
<%= render @posts %>
これは、変数/views/posts/_post.html.erb
を送信するときに、にあるパーシャルを探します。配列post
内のすべての Post モデルに対してこれを行います。@posts
コメントについては、次のように_post.html.erb
記述できます。
# /views/posts/_post.html.erb
<% # Post content here %>
<%= render post.comments %>
投稿コレクションと同様に、各コメントを次の場所にあるパーシャルを使用してレンダリングします。/views/comments/_comment.html.erb
詳細については、Rails ガイドをご覧ください。
于 2013-06-20T01:46:13.477 に答える