我正在为我的rails应用程序实现一个基本的标记功能,我希望有两种标记:
belongs_to
和has_many
之间的基本User
/ Tag
关系{1}}模特)belongs_to
和has_many
模型之间的User
/ Purchase
关系。我希望能够查询user.tags
并获取用户的标记类型(基本和虚拟)。如果用户购买了某些东西,我希望user.tags
产生一个"虚拟"该购买的标签(理想情况下基于与普通标签相同的类)。
这可能吗?
答案 0 :(得分:0)
所以我尝试这样做的动机是保持我的数据库规范化(即不在两个地方存储相同的信息)。
然而,我开始意识到在现实世界中,有时牺牲一些规范化以获得更好的性能和降低复杂性是有意义的。
所以我最终做的是保持这些特殊的标签模型"同步"通过模型回调和dependent: destroy
关系,在应用程序的其他地方使用各种对应模型。