Rails / ActiveRecord - 单表继承 - 覆盖类型字段

时间:2011-10-15 17:50:22

标签: ruby-on-rails activerecord single-table-inheritance

是否可以覆盖此colummn的名称?我正在更改我的应用程序的某些部分以使用STI,还有其他字段正在使用中。我也希望它是整数类型。

有什么想法吗?

2 个答案:

答案 0 :(得分:7)

根据ActiveRecord :: ModelSchema(3.2)中的代码,现在不推荐使用set_inheritance_column方法,您应该使用self.inheritance_column = column

答案 1 :(得分:5)

在现代Rails中,您使用inheritance_column=(注明panckreous):

class M < ApplicationRecord
  self.inheritance_column = 'whatever'
  #...
end

在旧版本的Rails中(即最初编写此答案时的情况),你会这样做 您可以使用[set_inheritance_column] [3]更改名称:

  

将要使用的继承列的名称设置为给定值,或者(如果值为nilfalse)设置给定块返回的值。

该列仍然必须是一个字符串(或text),因为AR想要放置the class name in there

  

单表继承

     

Active Record允许通过在默认情况下将类名称存储在名为“type”的列中来继承。