0

私はマルチテナント アプリケーションを作成しており、この Mongoid との関係をモデル化する方法を見つけようとしています。、または、またはそれが機能する場合は文字列の配列を使用するモデルSiteがあります。一意のドメインのみを関連付けることができることを検証したい (そのため、2 つのドメインが同じドメインを持つことはできません)。また、特定のドメインでサイトを検索できるようにしたいと考えています。has_many :domainsembeds_manySites

Mongoid を使用してこれをどのように表現しますか? Siteまた、特定のドメインでクエリを実行するにはどうすればよいですか?

4

1 に答える 1

1

has_many 関連付けを使用することをお勧めします。

ドメインモデルでは、そうするだけでうまくいきます。一意のドメイン名が必要であると仮定すると、url を変更するだけです。

validates_uniqueness_of :name

埋め込んだ場合、その検証を簡単に行うことはできません。すべてのサイトとドメインを取得するか、ドメイン名だけを含む別のコレクションを保持して、存在するかどうかを確認する必要があります。特定のドメインでサイトをクエリする場合も同じです。ドメインが属するサイトを知らずにドメインを取得できなかったためです。


次のように適切な関係を行う場合

class Site
  field :name
  has_many :domains
end

class Domain
  field :name
  belongs_to :site
end

その後、ActiveRecordのように行うことができます

some_domain.site

ドキュメント: http://mongoid.org/en/mongoid/docs/relations.html#has_many

于 2012-07-28T05:32:51.750 に答える