1->N->Nの関連付けがあるシナリオ。例:[投稿]->[コメント]->[投票](投票は、コメントに投票した人の名前のリストになります)。インクルードを含むページを表示するには、次のようになります。
@post = Post.where(:id => 100).includes({:comments => :votes}).first
キャッシュサポートを追加し始めています。つまり、コメントの部分がすでにキャッシュされている場合は、コメント/投票を常に含めて実行する必要はありません。したがって、コードを次のように表示する方法があるかどうか疑問に思います。
# controller
@post = Post.find(100)
# view
<% cache('comments', @post.last_comment_time do %>
<% @post.includes({:comments => :votes}).comments.each do |comment| # ???? %>
<% end %>
「ポストクエリ」インクルードを実行すると、関連付けが「入力」されます。したがって、@ post.commentsが入力され、各コメントにすべての投票が含まれます。これを達成する方法はありますか?
PSビューはクエリを実行するのに最適な場所ではないことを認識しています。これは単なる例です。