我知道有多个问题与此类似的标题,但我没有发现任何类似于我的问题。如果已有解决方案,因此我的问题是重复的,我很抱歉 - 我只是没找到它,并不是我没有搜索。
我正在使用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}}
基本上,这是有效的,但看起来像这样:
为什么html重复(我检查过它,它完全一样)?我做错了什么?
答案 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 %>