我有三个模型以多模型形式呈现.
class Parent < ActiveRecord::Base
has_many :children
accepts_nested_attributes_for :children
end
class Child < ActiveRecord::Base
belongs_to :parent
has_many :other_children
accepts_nested_attributes_for :other_children
end
class OtherChild < ActiveRecord::Base
belongs_to :child
end
= form_for @parent do |f|
# fields for parent
= f.fields_for :children, @parent.children do |cf|
= cf.fields_for :other_children, @parent.children do |ocf|
# fields_for other child
= cf.fields_for :other_children, @parent.children.new do |ocf|
# fields_for other child
Run Code Online (Sandbox Code Playgroud)
这有效,除非我通过jquery复制第二组子字段.更清楚的是,带有新的other_child模型的fields_for有一个创建按钮,可以触发一些jquery,例如$(new_child_form).clone().insertBefore($(new_child_form))允许在同一个表单提交中添加多个子模型.我知道我可以通过ajax单独提交每个子表单,但这不是我想要的.
Rails越来越多parent[children_attributes][0][other_children_attributes][1],似乎只使用最后一个.有任何想法吗?
您可以使用或不使用jQuery进行克隆.我通过链接调用插入元素的Javascript但基于当前时间生成唯一ID来解决此问题.如果您使用jQuery进行克隆,则必须确保更新克隆字段的ID,以便Rails将它们视为新子项. 瑞安贝茨说明如何做到这一点的Railscasts 196- 197和他的解决办法继续使用Rails 3一起工作.
| 归档时间: |
|
| 查看次数: |
3500 次 |
| 最近记录: |