如何在多个对象上执行semantic_fields_for?

时间:2013-05-30 23:46:26

标签: ruby-on-rails formtastic

首先,我没有使用ActiveRecord而是使用续集,因此我无法使用build这样的帮手。

我想要这样的事情:

model.children_models.each do |child_model|
  semantic_fields_for child_model do |f|
    f.input ...
  end
end

不幸的是,我遇到了两个问题:

  1. 输入字段都具有相同的名称,因此会相互覆盖。我通过手动执行类似semantic_fields_for "child_model[1]"的操作并在控制器中处理此操作来解决这个问题

  2. 我不知道如何修复子模型字段的内联表单错误。

  3. 有什么建议吗?

1 个答案:

答案 0 :(得分:0)

想出来。

需要使用此续集插件: http://sequel.rubyforge.org/rdoc-plugins/classes/Sequel/Plugins/NestedAttributes.html

plugin :nested_attributes
nested_attributes :children_models

然后就这样做:

model.children_models.each do |child_model|
  semantic_fields_for :children_models, child_model do |f|
    f.input ...
  end
end

关于Sequel如何与表单进行交互有一些怪癖,但大多数都可以从阅读中找到。