【问题标题】:Rails deletes record on edit and not submitRails 在编辑时删除记录而不是提交
【发布时间】:2016-05-04 15:14:47
【问题描述】:

具有以下关联:

Workout has_many workout_sets through ...

workout_set has_many workout_steps through ...

编辑对象时遇到以下问题:

1) 转至/model/:id/edit

2)检查数据库,一旦页面加载,顶级属性(非嵌套属性)会在页面加载后从数据库中删除,但选择标记为选择正确的值,就好像在加载数据是正确的。

3) 离开页面而不保存(返回/model/:id)执行以下操作:

  • 3.1) 不要更新对象,因为没有提交表单。
  • 3.2) 留下一个没有主要属性的模型,而最深的嵌套属性保持不变。

我使用cocoonsimple_form 来处理嵌套模型。我错过了 Rails 上的某些东西吗?

P.S:如果需要,我可以提供代码。

【问题讨论】:

  • 目前已经找到了similar question,但是解决方法不清楚。
  • 是的,请提供代码。特别是关联定义。我不清楚删除了什么。 “顶级属性”被删除?所以你的意思是锻炼的属性(哪个是顶部元素?)被清除了?
  • 嗨@nathanvda!已经修好了。对于顶级属性,我的意思是那些没有嵌套的。例如,一个锻炼有titledescription(第一/顶级)...和workout_sets,最后一个是一组对象。但同样,请参阅下面的答案。
  • 在关联上创建新元素对父元素有何影响?仅使用标准的 Rails 关联是不可能的,您的回答似乎暗示人们永远不应该使用 force_non_association_create,这是错误的(虽然它适用于简单的关联,但它不使用预定义的设置/范围等协会)。我正在尝试找出您的不同之处。

标签: ruby-on-rails forms simple-form cocoon-gem


【解决方案1】:

记录在案:

解决方法很简单:

:force_non_association_create => true 在每个 link_to_add_association 上。更多信息请查看this

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-05
    • 1970-01-01
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    • 1970-01-01
    • 2019-04-08
    • 1970-01-01
    相关资源
    最近更新 更多