Module 多态类已移动到遗留模块,正在查找多态类型Legacy::class而不是class
我将遗留代码移动到一个遗留模块中,该模块使用一个单独的只读数据库(旧的MySQL数据库),因为我们已经移动到新版本的PostgreSQL 在我们找到多态关联之前,一切都很好。它希望查找可事件类型:“Legacy::Schedule”,而不仅仅是“Schedule” 我可以对字段进行更新以更改为“Legacy::Schedule”,但我认为这不是最干净的解决方案。我只想在API中修改ActiveRecord查询,或者如果有关系黑客,我也希望这样 以下是我的例子:Module 多态类已移动到遗留模块,正在查找多态类型Legacy::class而不是class,module,polymorphism,legacy,Module,Polymorphism,Legacy,我将遗留代码移动到一个遗留模块中,该模块使用一个单独的只读数据库(旧的MySQL数据库),因为我们已经移动到新版本的PostgreSQL 在我们找到多态关联之前,一切都很好。它希望查找可事件类型:“Legacy::Schedule”,而不仅仅是“Schedule” 我可以对字段进行更新以更改为“Legacy::Schedule”,但我认为这不是最干净的解决方案。我只想在API中修改ActiveRecord查询,或者如果有关系黑客,我也希望这样 以下是我的例子: class Legacy::Leg
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
class Legacy::LegacyData
,
遗留模块
类事件<遗留::LegacyData
属于:可事件,多态:真
...
结束
结束
,
遗留模块
类计划
内部遗留::事件
def eventable
if self.eventable_type == 'Schedule'
Legacy::Schedule.find(self.eventable_id)
else
Legacy::OtherClass.find(self.eventable_id)
end
end
更新:
这是不完整的。例如,当Legacy::Schedule查询或建立在其事件关联上时,它仍然查询Legacy::Schedule
module Legacy
class Schedule < Legacy::LegacyData
has_many :events, as: :eventable
...
end
end
def eventable
if self.eventable_type == 'Schedule'
Legacy::Schedule.find(self.eventable_id)
else
Legacy::OtherClass.find(self.eventable_id)
end
end