В моделях моего единственного стола Inheritance я переопределяю метод inherited
в базовой модели, так что все модели потомков распознаются именем базовой модели. Следующий код используется для добавления переопределения к методу model_name для всех унаследованных классов.Предупреждение об устаревании с обходным решением model_name STI
def self.inherited(child)
child.instance_eval do
def model_name
BaesModelDefinition.model_name
end
end
end
Я заметил, что это продуцирующие предупреждения устаревания в Rails 3.2.3:
DEPRECATION WARNING: It looks like something (probably a gem/plugin) is overriding
the ActiveRecord::Base.inherited method. It is important that this hook executes so
that your models are set up correctly. A workaround has been added to stop this
causing an error in 3.2, but future versions will simply not work if the hook is
overridden.
есть другой подход, который я могу использовать, чтобы решить проблему MODEL_NAME?
Вы имеете в виду 'super (child)' –
'super' будет передавать параметры по умолчанию – montrealmike