Rails Bug?除非父母修改(嵌套形式),否则大孩子不会保存

时间:2011-06-10 00:36:19

标签: ruby-on-rails ruby activerecord nested-forms

基本上,我有4个级别的嵌套表单。 A具有C具有D,D具有多态性(A也具有D)。我在一个表单上编辑所有这些,使用javascript添加/删除B,C和D对象。

问题在于,每当我编辑D而不编辑A,B或C中的任何属性时,更改都不会保存。这包括添加D或编辑现有D的属性。

如果我更改任何父模型(A,B或C)中的属性,则更改会保存。

我的完全问题与Marking multi-level nested forms as "dirty" in Rails

相同

在那个问题中确定它是Rails 2.3.5中的一个错误。我正在运行2.3.11。该错误是否可能被重新引入?有谁知道怎么检查?

非常感谢...谢谢!

1 个答案:

答案 0 :(得分:1)

史蒂文,我相信这是Rails中的一个真正的错误。我曾经一度提交了一份关于此的错误报告,但它从来没有获得过牵引力。我认为问题非常重要,我还没有时间深入研究Rails代码并找出正确的解决方案。

我的解决方法只是为了确保沿线的某处“弄脏”父记录。我相信只要确定你在父记录上设置一个值就行了,即使这个值与db中的值不同。

当我处理这个问题时,我创建了一个jQuery动态父/子/孙子表单方法。如果它对你有用,你可以在这里找到它:http://amillionbetterthings.com/2010/06/24/rails-nested-forms-with-ajax-add-and-remove/