有没有从STI基类创建STI子模型对象?

时间:2009-06-17 19:57:01

标签: ruby-on-rails

给出以下层次结构

class Content < ActiveRecord::Base end
class Page < Content end
class Post < Content end

是否可以使用以下样式创建例如页面内容(间接):

c = Content.new c.type = Page c.title ='测试' c.save!

看起来type也是对象上的ruby方法。

2 个答案:

答案 0 :(得分:0)

我建议做这样的事情......

klass = "Page"
klass.constantize.create(:title=>'title')

如果您只是使用'type'属性,那么您将无法在对象的子类中覆盖任何方法。

答案 1 :(得分:-1)

当然,但你必须使用write_attribute

c.write_attribute(:type, "Page")
c.save