【发布时间】:2014-01-08 18:08:52
【问题描述】:
class User < ActiveRecord::Base
has_many :memberships
# included columns
# id: integer
---------------------
Membership < ActiveRecord::Base
belongs_to :user
# included columns
# user_id: integer
# active: boolean
我希望能够在单个查询中获取所有会员资格都为“active = false”的所有用户。到目前为止,我能想到的最好的是:
#grab possibles
users = User.joins(:memberships).where('memberships.active = false')
#select ones that satisfy condition
users.select{ |user| user.memberships.pluck(&:active).uniq == [false] }
这不是很好,因为我必须使用 ruby 来提取有效的。
【问题讨论】:
标签: sql ruby-on-rails ruby activerecord