我有一個在Rails查詢有點麻煩。Rails查詢條件計數
其實我的問題是:
我想選擇所有
users
不具有任何user_plans
和他role.name
是等於默認... OR 有和user_plans
所有user_plans.expire_date
是今天低於
user
的has_many roles
user
的has_many user_plans
users = User.where(gym_id: current_user.id).order(:id)
@users = []
for u in users
if u.roles.pluck(:name).include?('default')
add = true
for up in u.user_plans
if up.end_date > DateTime.now.to_date
add = false
end
end
if add
@users << u
end
end
end
這個代碼在這裏,是做正是我需要的,但有多個查詢。 我不知道如何在一個查詢中構建它。
我想知道是否有可能做這樣
where COUNT(user_plans.expire_date < TODAY) == 0
User.where(gym_id:current_user.id )。其中COUNT((user_plans.expire_date
只需使用'joins'?!? – Fallenhero
@Jyotimishra我想知道這個查詢的確切語法,但是謝謝 – DR7