2016-06-09 106 views
0

我實現一個基本的標註功能,我的Rails應用程序,我想有兩種標籤:Rails 4虛擬記錄(不是虛擬屬性) - 可能嗎?

  • 一個一般類型(即用戶格雷格通過基本標記爲「真棒」 belongs_to/has_manyUserTag型號)
  • 「虛擬」標籤類型的基礎上,記錄在另一個模型中存在的所有一起(即格雷格購買窗口小部件X之間的關係,通過belongs_to/has_many relati在UserPurchase模型之間)。

我希望能夠查詢user.tags並獲得用戶(基本和虛擬)的兩種標籤類型。如果用戶購買了東西,我想要user.tags爲該購買產生一個「虛擬」標籤(理想情況下基於與通用標籤相同的類別)。

這可能嗎?

回答

0

所以我嘗試這樣做的動機是保持我的數據庫正常化(即不在兩個地方存儲同一條信息)。

但是,我意識到在現實世界中,犧牲某些規範化以獲得更好的性能和降低複雜性有時是有意義的。

所以我最終做的是通過模型回調和dependent: destroy關係,讓這些特殊標記模型與應用程序中其他各種模型「同步」。