Ruby on rails STI和虚拟属性继承(Rails 2.3)

Ruby on rails STI和虚拟属性继承(Rails 2.3),ruby-on-rails,sti,virtual-attribute,Ruby On Rails,Sti,Virtual Attribute,假设我有一个STI关系,其中Commentable是超类,NewsComment是子类。在评论中,我有: attr_accessor :opinionated def after_initialize self.opinionated = true end 在NewsComment中: attr_accessor :headliner def after_initialize self.headliner = true end 实例化NewsComment时,不会继承VA sel

假设我有一个STI关系,其中Commentable是超类,NewsComment是子类。在评论中,我有:

attr_accessor :opinionated

def after_initialize
  self.opinionated = true
end
在NewsComment中:

attr_accessor :headliner

def after_initialize
  self.headliner = true
end

实例化NewsComment时,不会继承VA self.opinitated。为什么呢?如何“强制”NewsComment从Commentable继承?

如何实例化NewsComment对象?after_initialize回调仅在finder实例化对象时执行。此外,您定义方法的方式可能会覆盖其行为。如果使用DSL风格的方法会怎么样?:

class Commentable
  attr_accessor :opinionated

  after_initialize do
    self.opinionated = true
  end

end

class NewsComment < Commentable
  attr_accessor :headliner

  after_initialize do
    self.headliner = true
  end
end
类可注释
attr_访问者:固执己见
在你初始化之后做什么
自以为是的
结束
结束
类NewsComment<可评论
属性存取器:顶篷衬里
在你初始化之后做什么
self.headliner=true
结束
结束