我希望用3种类型的对象构建一个简单的应用程序:
作者撰写文章,并制作适当的标签.
所以:
author has many articles; article belongs to author
Run Code Online (Sandbox Code Playgroud)
但标签怎么样?我希望文章和作者都有标签.
我可以想象:
author has many tags; article has many tags
Run Code Online (Sandbox Code Playgroud)
但是标签模型上的声明怎么样?
tag belongs to authors; tag belongs to articles
Run Code Online (Sandbox Code Playgroud)
这两个人是否会相互干涉?
我担心的是标签需要作者和文章父母.并且在它具有两种类型的父项的情况下,由于数据库中的外键约束,删除一个将删除标记而另一个父项将删除.
提前致谢!
您正在寻找多态关联:
class Tag < ActiveRecord::Base
belongs_to :taggable, :polymorphic => true
end
class Author < ActiveRecord::Base
has_many :tags, :as => :taggable
end
class Article < ActiveRecord::Base
has_many :tags, :as => :taggable
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2352 次 |
| 最近记录: |