假设我有Group
User
个,而User
有一个枚举,用来描述它的情绪。
class Group < AR::Base
has_many :users
class User < AR::Base
belongs_to :group
enum mood: %i(good bad ugly)
如何查找至少有一个User
心情愉快的所有群组?
我应该添加哪个索引来优化此查询?
答案 0 :(得分:1)
您可以使用joins
方法。
Group.joins(:users).where("users.mood = ?", User.moods[:good])
您可以将其添加到迁移中
add_index :users, :group_id