0

我正在创建一个多租户应用程序,并试图弄清楚如何与 Mongoid 建立这种关系。我有一个Site模型has_many :domainsembeds_many如果可以的话,它或者甚至使用字符串数组。我想验证只能关联唯一域(因此两个Sites域不能具有相同的域)。我还希望能够通过给定域找到站点。

我将如何使用 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 回答