【发布时间】: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) 留下一个没有主要属性的模型,而最深的嵌套属性保持不变。
我使用cocoon 和simple_form 来处理嵌套模型。我错过了 Rails 上的某些东西吗?
P.S:如果需要,我可以提供代码。
【问题讨论】:
-
目前已经找到了similar question,但是解决方法不清楚。
-
是的,请提供代码。特别是关联定义。我不清楚删除了什么。 “顶级属性”被删除?所以你的意思是锻炼的属性(哪个是顶部元素?)被清除了?
-
嗨@nathanvda!已经修好了。对于顶级属性,我的意思是那些没有嵌套的。例如,一个锻炼有
title、description(第一/顶级)...和workout_sets,最后一个是一组对象。但同样,请参阅下面的答案。 -
在关联上创建新元素对父元素有何影响?仅使用标准的 Rails 关联是不可能的,您的回答似乎暗示人们永远不应该使用
force_non_association_create,这是错误的(虽然它适用于简单的关联,但它不使用预定义的设置/范围等协会)。我正在尝试找出您的不同之处。
标签: ruby-on-rails forms simple-form cocoon-gem