Mongoid独特的孩子

时间:2012-07-28 05:29:03

标签: ruby mongoid

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

我如何使用Mongoid表示这个?另外,我如何通过给定域查询Site

1 个答案:

答案 0 :(得分: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

docs:http://mongoid.org/en/mongoid/docs/relations.html#has_many

相关问题