我有一个Parent
类,它将一些方法委托给Son
. 在我的迁移中,我Parent
先创建,然后再创建Son
。
现在,如果我删除数据库并重新创建它,则在parents
创建sons
表时,尚未创建表。我的代码中断是因为此时,因为尚未创建的Parent
委托方法。Son
我试图通过创建一个条件来避免这种迁移问题:
if defined? Son == 'constant' && Son.class == Class
#do delegation here
end
但是,这会在其他情况下破坏我的代码。例如,当我运行应用程序并且尚未初始化Son
时,测试define? Son == 'constant'
将失败。
我应该如何避免这种情况?