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