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