This post описывает мою проблему очень хорошо, но ответ на этот пост предполагает, что вы используете однонаправленное наследование (STI) для подклассов. В моем случае подклассы SomeProf
имеют свои собственные таблицы, и поскольку столбец _type
хранит имя класса суперкласса, это не работает. В моем эквиваленте SomeDeepProf1
я заявил, что self.table_name = 'some_other_table'
, и я бы не хотел использовать STI, поскольку подклассы моего эквивалента SomeProf
имеют очень разные атрибуты.Rails Полиморфные ассоциации без STI
Любое предложение о том, как это решить?
К сожалению, это не работает весь путь ... Кажется, это класс 'SomeDeepProf1', что думают' profile_type 'должен быть' SomeProf', а не 'SomeDeepProf1'. В моей модели у меня есть has_many: через отношение из 'SomeProf'class, и если я попытаюсь перейти от' SomeDeepProf1' к этому has_many: через отношение, запрос будет '[" profile_type "," SomeProf "]'. Как я могу изменить запрос, чтобы проверить 'SomeDeepProf1' на' SomeProf'? – ehannes