Ruby on rails Rails/ActiveRecord-单表继承-重写类型字段

Ruby on rails Rails/ActiveRecord-单表继承-重写类型字段,ruby-on-rails,activerecord,single-table-inheritance,Ruby On Rails,Activerecord,Single Table Inheritance,是否可以覆盖此列的名称?我正在将我的应用程序的某些部分更改为使用STI,还有其他字段正在使用。我也希望它是整型的 有什么想法吗?在现代Rails中,您可以使用(如上所述): M类

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


有什么想法吗?

在现代Rails中,您可以使用(如上所述):

M类
在旧版本的Rails中(即最初编写此答案时的情况),您需要 您可以使用[
set\u heritation\u column
][3]更改名称:

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

列仍然必须是一个字符串(或
text
),因为AR希望:

单表继承

活动记录允许通过将类的名称存储在默认名为“type”的列中进行继承


在现代Rails中,您将使用(如上所述):

M类
在旧版本的Rails中(即最初编写此答案时的情况),您需要 您可以使用[
set\u heritation\u column
][3]更改名称:

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

列仍然必须是一个字符串(或
text
),因为AR希望:

单表继承

活动记录允许通过将类的名称存储在默认名为“type”的列中进行继承


根据ActiveRecord::ModelSchema(3.2)中的代码,
set\u heritation\u column
方法现在已被弃用,您应该根据ActiveRecord::ModelSchema(3.2)中的代码使用
self.heritation\u column=column
set\u heritation\u column
方法现在已被弃用,您应该使用
self.heritation\u column=column

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