레일스에서 쿼리에 약간 문제가 있습니다.수에 조건이있는 레일스 쿼리
내가
user_plans
및 그의role.name
어떤이 기본 ... 또는이user_plans
을 가지고 같음이없는 모든users
을 선택합니다 모든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 : 전용 (계획이없는 사람들을 가져 오지 않습니다 즉) 적어도 하나의 user_plan가 해당 사용자를 가져옵니다 사용자에 .joins를 호출) .where COUNT ((user_plans.expire_date
그냥'join '을 사용 하시겠습니까? – Fallenhero
@Jyotimishra이 쿼리에 대한 정확한 구문을 알고 싶지만 – DR7