依赖删除多态关系

时间:2012-07-30 12:48:24

标签: ruby-on-rails

我正在使用多个表的多态关系。对象窗口有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。任何帮助,将不胜感激。

1 个答案:

答案 0 :(得分:0)

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