Rails关于关系的问题(中级)

时间:2010-11-18 12:48:26

标签: ruby-on-rails activerecord polymorphism

我正在实现此解决方案作为多态的替代方案。

Why can you not have a foreign key in a polymorphic association?

但我想知道是否有一个简单的方法:

Article.comments代替Article.commentable.comments

1 个答案:

答案 0 :(得分:3)

您应该能够使用delegate将方法调用传递给另一个对象。

class Article < ActiveRecord::Base
  has_one :commentable

  delegate :comments, :to => :commentable
end

编辑:

我假设你并不是要在你的例子中使用常量文章,因为这不会起作用。这些方法是实例方法,需要用作:

article = Article.first

article.commentable.comments
article.comments (Equivalent to above)