0

複数のテーブルでポリモーフィック リレーションを使用しています。オブジェクト ウィンドウには、ChartWindow、PluginWindow、または PortletWindow があります。class_eval (relate_to_details) 手法を使用して詳細テーブルを定義し、各オブジェクトが個別の属性を持つ独自のテーブルを持つことができるようにしました。

PluginWindowDetail は、PluginWindow の詳細テーブルです。PluginWindow には plugin_id (plugin_window_details.plugin_id) があるので、Plugin を削除して Window も削除したいので、PluginWindow に has_one 関連 ( has_one :plugin_window_detail, :dependent => :delete) を定義しました。

しかし、私はこれが私が望むものを私に与えていないことに気付きました. PluginWindowDetail を削除しても、PluginWindow は削除されません。また、通常の ActiveRecord 関連付けの代わりに class_eval 手法を使用しているため、自分でコーディングせずにこれを行う方法がわかりません (そうすべきかもしれません)。

とにかく..コードの要旨はこちらhttps://gist.github.com/3206666。どんな助けでも大歓迎です。

4

1 に答える 1

0

それを行うより簡単な方法は、 before_destroy コールバックを使用することだと思います。より柔軟になります。

于 2012-07-30T13:16:46.850 に答える