2012-07-28 92 views
0

我正在創建一個多租戶應用程序,並試圖找出如何建模與Mongoid這種關係。我有一個Site模型,其中has_many :domainsembeds_many,或者甚至使用一個字符串數組(如果可以的話)。我想驗證只有唯一的域可以關聯(所以兩個Sites不能有相同的域)。我也希望能夠通過給定的域名找到網站。Mongoid獨特的兒童

我怎麼用Mongoid來表示這個?另外,我將如何查詢給定域的Site

回答

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

+0

好吧,聽起來不錯。你能提供一個我如何查找基於給定域的網站的例子嗎? – Andrew 2012-07-28 05:43:46

+0

編輯了答案 – 2012-07-28 07:11:41