给定以下代码:
class BaseType < ActiveRecord::Base
attr_accessible :a, :type
end
class SubType < BaseType
attr_accessible :b
end
我希望属性a
可以在 中访问BaseType
,并且属性a
和b
可以在 中访问,SubType
而无需在 中a
再次声明SubType
。在这种情况下,单表继承没有帮助,或者至少我无法弄清楚。还可以应用哪些其他解决方案?
更新:
在 timpone 发表评论之后,这就是我测试上面代码的方式:
通过以下方式创建模型:
rails g model BaseType a:string type:string
rails g model SubType b:string
将 sub_type.rb 中的超类从 更改ActiveRecord::Base
为BaseType
。迁移后,我尝试在 rails 控制台中创建一个新的 SubType 实例并收到以下错误:
1.9.3p194 :001 > SubType.create(:b => "A")
ActiveRecord::UnknownAttributeError: unknown attribute: b
为什么呢?