查看由 ACL 组件生成的表格(aros、acos),例如 CakeDC 的收藏夹插件,我看到favorites
带有字段的表格Favorite.user_id
,Favorite.model
和Favorite.foreign_key
。
最后两个组合正在替换旧的Favorite.post_id
(假设model
具有 value 'Post'
)。它在某种程度上是一个 HABTM 数据透视表,一侧有一个动态模型名称。
我可以在这里看到一般和有用的想法,但想了解更多关于它的应用。
我的问题:
- 这种模式有名字吗?
- 这在代码方面是如何工作的?我可以看到抽象的原理,但是需要什么样的模型代码才能完成这项工作?它是否涉及拼凑的查询,或者这是否允许平滑的单查询实现?例如:我想一次性获取系统中所有标记为收藏的帖子及其相关用户。
- 这是双向的吗?(从 Post 模型和 User 模型查询)
我想努力实现一种抽象,在其中我放置一种行为来处理这种模式。我确实查看了 CakeDC 代码,但无法弄清楚原理。就我目前的知识而言,这有点太神秘了。因此我的问题在这里。
亲切的问候,
巴特