I have two models
class InterestingGuest < ApplicationRecord
# column_name
# recommended_to
# recommendee
belongs_to :recommended_to, class_name: 'User'
belongs_to :recommendee, class_name: 'User'
end
class User < ApplicationRecord
# column_name
# membership_level : ['Member', 'Guest']
has_many :guest_recommendations, class_name: 'InterestingGuest',
foreign_key: 'recommended_to_id',
dependent: :destroy
has_many :recommendees, class_name: 'InterestingGuest',
foreign_key: 'recommendee_id',
dependent: :destroy
end
I'm trying to find all the recommendees
where membership_level
is Guest
the query I tried is
recommendees = InterestingGuest.where(recommended_to_id: user_id))
.pluck(:recommendee_id)
guests = User.where(id: recommendees).where(membership_level: 'Guest')
Even though it serves the purpose but is there a better way to achieve the same in a single query