我正在创建一个多租户应用程序,并试图弄清楚如何与 Mongoid 建立这种关系。我有一个Site
模型has_many :domains
,embeds_many
如果可以的话,它或者甚至使用字符串数组。我想验证只能关联唯一域(因此两个Sites
域不能具有相同的域)。我还希望能够通过给定域找到站点。
我将如何使用 Mongoid 来表示这个?另外,我将如何查询Site
给定域?
您最好使用 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