我希望用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