ActiveAdmin嵌套表单重复

时间:2017-03-13 13:44:34

标签: ruby-on-rails forms activeadmin

我知道有多个问题与此类似的标题,但我没有发现任何类似于我的问题。如果已有解决方案,因此我的问题是重复的,我很抱歉 - 我只是没找到它,并不是我没有搜索。

我正在使用ActiveAdmin和ActiveSkin主题。我有一个模型has_many的表单,我想在<%= semantic_form_for [@agent], builder: ActiveAdmin::FormBuilder do |f| %> <%= f.semantic_errors %> <%= f.inputs 'General Information' do %> <%= f.input :name %> <%= f.input :description %> <% end %> <%= f.inputs 'Capture Columns' do %> <%= f.has_many :capture_columns, new_record: 'Add Column' do |column| %> <%= column.input :column_name %> <%= column.input :column_datatype %> <% end %> <% end %> <%= f.actions do %> <%= f.action :submit %> <li class="cancel"><%= link_to 'Cancel', :back %></li> <% end %> <% end %> 关系中使用嵌套表单。我在部分代码中创建了这段代码:

{{1}}

基本上,这是有效的,但看起来像这样:

Forms with duplicated html

为什么html重复(我检查过它,它完全一样)?我做错了什么?

编辑: 嵌套表单的内部HTML也是重复的: Nested Form with duplicated html

2 个答案:

答案 0 :(得分:2)

不说这是正确的行为,但根据the docs,您需要避免在使用has_many时打印到模板。

尝试在<%-声明和阻止中使用<%<%=代替f.has_many

答案 1 :(得分:1)

有一个循环听到。问题很容易解决,只需进入循环并理解为什么循环以及如何解决它。您应该使用binding.pry来测试它。您可以使用<% binding.pry %>在表单中设置断点,也可以在服务器日志中打印<% puts column %>等变量。

  <%= f.has_many :capture_columns, new_record: 'Add Column' do |column| %>
        <%= column.input :column_name %>
        <%= column.input :column_datatype %>
    <% end %>