1

2 つのモデルが直接関連付けられていなくても、次のクエリを実行できますか。

Event.where(community_id: 1)

次の 3 つのモデルがあります。

class Community < ActiveRecord::Base
  has_many :organizers
end

class Organizer < ActiveRecord::Base
  belongs_to :community
  has_many  :events
end

class Event < ActiveRecord::Base
  belongs_to :organizer
end

最も近いのは、次のように「デリゲート」を使用することです。これは、event.communities では機能しますが、where クエリでは機能しません。

delegate :community, :to => :organizer, :allow_nil => true
4

1 に答える 1

3

あなたはこれを行うことができます:

Event.joins(organizer: :community).where("communities.id = ?", 1)

または:

Event.joins(:organizer).where("organizers.community_id = ?", 1)
于 2013-05-19T14:34:42.000 に答える