ビューでクエリを最適化 (制限) しようとしています。fields_for関数を使用しています。表示用のユーザー名など、オブジェクトのさまざまなプロパティを参照する必要があります。ただし、これは rel テーブルなので、users テーブルと結合する必要があります。結果は、 fields_forのフィールドごとに 1 つずつ、N 個のサブクエリになります。説明するのは難しいですが、コードを貼り付ければ、私が求めていることを理解できると思います。
<%= form_for @election do |f| %>
<%= f.fields_for :voters do |voter| %>
<%= voter.hidden_field :id %>
<%= voter.object.user.preferred_name %>
<% end %>
<% end %>
私は 10,000 人のユーザーを抱えており、多くの場合、各選挙には 10,000 人のユーザー全員が含まれます。これは、このビューが読み込まれるたびに 10,000 のサブクエリです。fields_forでユーザーを結合したい。これは可能ですか?
私は次のようなことをしたいと思います:
...
<%= f.fields_for :voters, :joins => :users do |voter| %>
...
<% end %>
...
しかし、もちろん、それはうまくいきません:(