0

我有一个Parent类,它将一些方法委托给Son. 在我的迁移中,我Parent先创建,然后再创建Son

现在,如果我删除数据库并重新创建它,则在parents创建sons表时,尚未创建表。我的代码中断是因为此时,因为尚未创建的Parent委托方法。Son

我试图通过创建一个条件来避免这种迁移问题:

if defined? Son == 'constant' && Son.class == Class
  #do delegation here
end

但是,这会在其他情况下破坏我的代码。例如,当我运行应用程序并且尚未初始化Son时,测试define? Son == 'constant'将失败。

我应该如何避免这种情况?

4

1 回答 1

0

此代码应移至初始化程序并从迁移中删除。因为,迁移与它无关。这将使您的迁移干净。

于 2013-09-25T12:07:03.053 回答