本当に奇妙なことをしているアプリがあります。
関連する 2 つのモデルがありhas_many
ます: Group
has_many :members
. ( AMember
は 1 つのみに属することができGroup
ます。) そこで、グループのメンバーを次のようにリストします。
<ul>
<%= for member in @group.members do %>
<li class="entry">
<%= link_to member.name, member_path(member) %>
</li>
<% end %>
</ul>
簡単です。これは、グループ インデックスですべてのグループを一覧表示するために使用したのと同じロジックであり、正常に動作します。ただし、これは HTML 出力です。
<ul>
<li class="entry">
<a href="/members/23">John Doe</a>
</li>
<li class="entry">
<a href="/members/25">Jane Doe</a>
</li>
[#<Member id: 23, name: "John Doe", [timestamps], group_id: 3>, #<Member id: 25, name: "Jane Doe", [timestamps], group_id: 3>]</ul>
なんてこったい?inspect
ビューのどこにも呼び出しがありませdebug
んが、ループの後にクエリ全体を追加し続けます。同じことがeach
イテレータでも起こります。
このモデルは、別のモデル , ( ) とMember
もhas_many :through
関連付けられていることに注意してください。同じ方法で関連付けを反復すると、同じことが起こります。Seminar
:through => :memberships
何が起こっている?