railsでjoinsコマンドを実行時に通常の件数より100倍大きくなります。
joinしない状態だと以下のように40件ですが、
@organization.users.length => 40件
join後は4000件になります。
@organization.users.joins(:roles).length CACHE User Load (0.0ms) SELECT `users`.* FROM `users` INNER JOIN `organization_users` ON `users`.`id` = `organization_users`.`user_id` INNER JOIN `users_roles` ON `users_roles`.`user_id` = `users`.`id` INNER JOIN `roles` ON `roles`.`id` = `users_roles`.`role_id` WHERE `organization_users`.`organization_id` = 185523 ↳ (pry):106:in `index' => 4000件
joinsしても40件のままにするにはどうすればよいでしょうか?
rolifyというgemで属性を管理していてAdmin属性ではないuser一覧を取得するのが最終的にやりたいことです。
@organization.users.joins(:roles).merge(Role.where.not(name: 'Admin'))
以上です。よろしくおねがいします!
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/14 12:13 編集