让我们首先查看我的数据库模式,这是一个简单的数据库表结构,如下所示。
page table (id, title, description, link)
post table (id, body)
list table (id, name)
user table (id, uname, upawd)
tag table (id, name)
tag_item (tag_id, item_id, item_type)
表tag_item
的数据行将是这样的。
tag_id item_id item_type
1 1 page
1 2 page
1 1 post
2 1 user
3 1 list
item_type
表中的item_id
和tag_item
字段作为相关的表名和表主键ID,换句话说,我想将标记用作关键字关联所有表格。
那么,如何在单个模型类中编写代码以将标记相互关联。
如何用轨道的方式设计类模型中的关联。
提前感谢。
答案 0 :(得分:1)
您可以使用has_many :through
来实现关联:
class Type < ActiveRecord::Base
has_many :tag_items
has_many :tags, :through => :tag_items
end
class Tag < ActiveRecord::Base
has_many :tag_items
has_many :types, :through => :tag_items
end