にParent
いくつかのメソッドを委譲するクラスがありSon
ます。私の移行では、Parent
最初に作成してからSon
後で作成します。
ここで、データベースを削除して再作成すると、テーブルが作成された時点で、parents
テーブルは作成さsons
れていません。この時点でParent
デリゲート メソッドSon
が に作成されていないため、コードが壊れます。
条件を作成して、この移行の問題を回避しようとしました。
if defined? Son == 'constant' && Son.class == Class
#do delegation here
end
ただし、これは他の状況で私のコードを壊します。たとえば、アプリを実行し、初期化していないSon
場合、テストdefine? Son == 'constant'
は失敗します。
この状況を回避するにはどうすればよいですか?