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