Я пытаюсь изменить inheritance_column по умолчанию для всех моих моделей:По умолчанию inheritance_column имени в ActiveRecord
# lib/change_sti_column.rb
module ChangeSTIColumn
def self.included(base)
base.class_eval do
self.inheritance_column = 'runtime_class'
end
end
end
ActiveRecord::Base.send(:include, ChangeSTIColumn)
Кажется, что ActiveRecord :: Base не получает его, но подклассы делать!
1.9.3-p484 :005 > ActiveRecord::Base.inheritance_column
=> "type"
1.9.3-p484 :005 > SubclassOfAR.inheritance_column
=> "type"
1.9.3-p484 :009 > SubclassOfAR.send(:include, ChangeSTIColumn).inheritance_column
=> "runtime_class"
Так как же исправить это, чтобы заставить его работать для базового класса?
ActiveRecord :: Base.inheritance_column = «RUNTIME_CLASS» не работает. И конечно, я мог бы легко установить его в каждом классе, в котором я нуждаюсь, но мне просто интересно, можно ли изменить глобально. –