ruby-on-rails – 可以属于多个其他对象的对象的模型设计?

我希望用3种类型的对象构建一个简单的应用程序:

>文章(RoR的第一天,为什么PHP仍然很棒,RoR与PHP相比)
>作者(Bob,Steve,Jen)
>标签(RoR,PHP)

作者撰写文章,并制作适当的标签.

所以:

author has many articles; article belongs to author

标签怎么样?我希望文章和作者都有标签.

我可以想象:

author has many tags; article has many tags

但是标签模型上的声明怎么样?

tag belongs to authors; tag belongs to articles

这两个人是否会相互干涉?

我担心的是标签需要作者和文章父母.并且在它具有两种类型的父项的情况下,由于数据库中的外键约束,删除一个删除标记和另一个父项.

提前致谢!

解决方法

您正在寻找 polymorphyc associations

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

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...