考慮下面寫的ActiveRecord查詢:如何使用加入,而不是子查詢中的Rails 4
class User < ActiveRecord::Base
has_many :events
end
class Event < ActiveRecord::Base
belongs_to :user #this user is the event owner
has_many :members
end
class Members < ActiveRecord::Base
belongs_to :user
belongs_to :event
end
現在,我需要列出所有這些current_user
是所有者的成員。所以我想出了這一點:
@members = Member.where event_id: current_user.events
產生以下查詢:
SELECT "members".* FROM "members" WHERE "members"."event_id" IN (SELECT "events"."id" FROM "events" WHERE "events"."user_id" = 1)
可正常工作,但使用子查詢,而不是JOIN
。有誰知道更好的方式來寫這個相同的查詢?
我該如何使用'ActiveRecord'生成? – CuriousMind
@CuriousMind:我沒有使用AR,但應該是微不足道的。 –