是否有类似django的Rails的contenttypes框架?

时间:2013-10-15 15:29:51

标签: ruby-on-rails ruby django

我是rails的新手,但在django中开发了很多应用程序。 Django提供了一个contenttypes框架,该框架为每个模型创建一个具有唯一ID的表,允许使用object idcontent-type id引用来自多个表的对象。 (more info on the contenttypes framework

这非常有用,因为现在我可以只使用一个表格来投票,而不是拥有与可以投票的事物数量相同的表格(例如question_votesanswer_votes,{{ 1}},comment_votes)。此外,如果出现像post_votes这样需要投票的新类型,则无需创建新表blogs。所以这让生活变得轻松。

我的问题是,是否有一个框架/ gem为rails做同样的事情?

谢谢,

2 个答案:

答案 0 :(得分:1)

Polymorphic association解决了这个问题

答案 1 :(得分:1)

作为一名已经注意到的评论者,您可能需要多态关联。考虑这个例子:

class Vote < ActiveRecord::Base
  belongs_to :voteable, polymorphic: true
end

class User < ActiveRecord::Base
  has_many :votes, as: :voteable
end

class Product < ActiveRecord::Base
  has_many :votes, as: :voteable
end

更多信息: http://guides.rubyonrails.org/association_basics.html#polymorphic-associations