2012-07-30 126 views
0

我对多个表使用多态关系。对象窗口有ChartWindow,PluginWindow或PortletWindow。我使用了class_eval(relate_to_details)技术来定义细节表,以便每个对象都可以拥有自己的具有不同属性的表。依赖于多态关系的删除

PluginWindowDetail是PluginWindow的详细表。 PluginWindow有一个plugin_id(plugin_window_details.plugin_id)因此,我在PluginWindow中定义了一个has_one关联(has_one:plugin_window_detail,:dependent =>:delete),因为我想删除带有插件的Window被删除。

但是,我意识到这不是我想要的。删除PluginWindowDetail不会删除PluginWindow ..因为我使用的是class_eval技术而不是普通的ActiveRecord关联,所以我不确定如何自己编写它(我可能会这样做)

反正..代码在这里https://gist.github.com/3206666。任何帮助,将不胜感激。

回答

0

我认为更简单的方法是使用before_destroy回调。它会更加灵活。

+0

这是有效的。谢谢! – Greg 2012-07-30 18:27:36