Комментарий выше, но ограниченные возможности редактирования.Я столкнулся с этой точной проблемой и нашел вторую половину решения в другом месте.STI позволит вам получить подмножество таблицы на основе столбца в таблице, но отключит имя класса, чтобы найти записи для этого класса.Например:
class Company < ActiveRecord::Base; end
class Client < Company; end
При этом в таблице с именем Company будут найдены записи со значением «Клиент» в столбце с именем «Тип».
Вы можете переопределить столбец, который STIпроверяет, выполняя
class Company < ActiveRecord::Base
self.inheritance_column = :company_type
end
Но он все еще ищет в этом столбце «Клиент».Вы можете переопределить значение, которое оно ищет, выполнив следующее:
class Client < Company
def self.sti_name
1
end
end
Теперь в столбце company_type будут рассмотрены строки со значением 1.
Для Rails-4.2 это почтиидентичный, но не нуждается в методе класса:
private
self.inheritance_column = :company_type
def sti_name
1
end