Я переместил устаревший код в модуль Legacy, который использует отдельную базу данных только для чтения (старую базу данных MySQL) по мере того, как мы перешли на PostgreSQL для новой версии.Полиморфный класс переместился в модуль Legacy и ищет полиморфный тип Legacy :: Class вместо класса
Все запрашивается, пока мы не доберемся до Полиморфных ассоциаций. Он хочет искать eventable_type: «Legacy :: Schedule» вместо «Schedule».
Я мог бы сделать обновление на поле, чтобы перейти на «Наследие :: Расписание», но я не думаю, что это самое чистое решение. Я хотел бы просто изменить запрос ActiveRecord в API или если есть хакеры отношений, я бы тоже предпочел это.
Вот пример того, что у меня есть:
class Legacy::LegacyData < ActiveRecord::Base
self.abstract_class = true
case Rails.env
when "production"
establish_connection :legacy_production
when "development"
establish_connection :legacy_development
when "test"
establish_connection :legacy_test
else
puts "connection: Rails.env error on establish_connection"
end
end
,
module Legacy
class Event < Legacy::LegacyData
belongs_to :eventable, polymorphic: true
...
end
end
,
module Legacy
class Schedule < Legacy::LegacyData
has_many :events, as: :eventable
...
end
end