0

私は3つのモデルを持っています:

class Tenant < ActiveRecord::Base
  has_many :sites
end

class Site < ActiveRecord::Base
  belongs_to :tenant
  has_and_belongs_to_many :users
end

class User < ActiveRecord::Base
  has_and_belongs_to_many :sites
end

サイトとユーザーには、結合テーブル (sites_users) があります。

すべてのサイトには n 人のユーザーがいます。すべてのテナントには n 個のサイトがあります。

特定のサイトのユーザーのリストを取得するには、次のように簡単です。

t = Tenant.first
s = t.sites.first
s.users

しかし、そのテナントの下にあるすべてのサイト間のすべてのユーザーのリストを提供するためにテナントに追加できる関連付けはありますか? 私ができるように:

t = Tenant.first
t.users
4

1 に答える 1

0

多くの人がこれを求めてきました。Rails Lighthouse チケット #8994で、 nested_has_many_through プラグインの機能をマージしようとしている一部の開発者の議論を見ることができます。Rails 2.3 を使用している場合は、nested_has_many_through プラグインが機能する可能性があります。それ以外の場合、Rails 3 ではARelクエリを記述して、適切なスタディ セットを見つけることができます。

于 2010-11-01T02:39:41.607 に答える