【问题标题】:Rails Bug? Grand-children don't save unless parents modified (nested form)导轨错误?除非父母修改,否则孙子不会保存(嵌套形式)
【发布时间】:2011-06-10 00:36:19
【问题描述】:

基本上,我有 4 级嵌套表单。 A 有 B 有 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。是否有可能重新引入该错误?有人知道怎么查吗?

非常感谢...谢谢!

【问题讨论】:

  • 你总是可以通过更新你的 gemfile 暂时恢复到以前版本的 rails - 看看你是否仍然有问题。这将有助于确定它是 Rails 还是您的应用程序 - 至少在某种程度上是这样。
  • Sooo,我这样做并恢复到 2.3.8。奇怪的是,问题变得更糟了。现在,C 或 D 都不会在不修改 B 的情况下保存(在 2.3.11 上,只有 D 在没有其他任何修改的情况下无法保存......)任何想法都会非常有帮助......谢谢!

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


【解决方案1】:

Steven,我相信这是 Rails 中的一个真正的错误。我曾经提交过一份关于此的错误报告,但它从未获得关注。我认为这个问题很重要,我还没有时间深入研究 Rails 代码并找出正确的解决方案。

我的解决方法只是确保在某处我“弄脏”了父记录。我相信只要确保在父记录上设置一个值就可以解决问题,即使该值与数据库中的值没有什么不同。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-16
    • 1970-01-01
    • 2020-08-22
    • 2019-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多