2016-06-09 91 views
0

我实现一个基本的标注功能,我的Rails应用程序,我想有两种标签:Rails 4虚拟记录(不是虚拟属性) - 可能吗?

  • 一个一般类型(即用户格雷格通过基本标记为“真棒” belongs_to/has_manyUserTag型号)
  • “虚拟”标签类型的基础上,记录在另一个模型中存在的所有一起(即格雷格购买窗口小部件X之间的关系,通过belongs_to/has_many relati在UserPurchase模型之间)。

我希望能够查询user.tags并获得用户(基本和虚拟)的两种标签类型。如果用户购买了东西,我想要user.tags为该购买产生一个“虚拟”标签(理想情况下基于与通用标签相同的类别)。

这可能吗?

回答

0

所以我尝试这样做的动机是保持我的数据库正常化(即不在两个地方存储同一条信息)。

但是,我意识到在现实世界中,牺牲某些规范化以获得更好的性能和降低复杂性有时是有意义的。

所以我最终做的是通过模型回调和dependent: destroy关系,让这些特殊标记模型与应用程序中其他各种模型“同步”。