2
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] }
,因爲我必須使用紅寶石掐出有效的人是不是很大。
這是一個偉大的射門,但仍然關閉觸發兩個查詢。目標是在單個查詢中進行連接和比較,而不必執行子查詢。我懷疑用「有」和「不在」混淆可能是訣竅。我改變了上面的問題描述,使用'pluck'進行小型優化,而不是使用map。感謝你的回答! –