这是一个我有点羞于问的简单问题,但我一直把头撞在墙上并浏览rails 3文档但没有任何成功:/
所以,事情是这样的:
当我使用fields_for
助手时,它会将生成的字段包装在<div class="fields"> ... </div>
标签中。
所以,我的代码是
<ul class="block-grid two-up">
<%= f.fields_for :images do |image_builder| %>
<%= render "images/form", :f => image_builder %>
<% end %>
</ul>
生成的html是:
<ul class="block-grid two-up">
<div class="fields">
<div>
<label for="company_images_attributes_0_image"> Image</label>
<input id="company_images_attributes_0_image"
name="company[images_attributes][0][image]" type="file">
</div>
</div>
<div class="fields">
<div>
<label for="company_images_attributes_1_image"> Image</label>
<input id="company_images_attributes_1_image"
name="company[images_attributes][1][image]" type="file">
</div>
</div>
</ul>
我想要做的实际上是将<div class="fields">
包装标签更改为<li>
.
文档说您可以将选项传递给fields_for,但不清楚您可以传递哪些选项,也许您可以更改此包装标签?
一种可能是覆盖一个函数,有点像ActionView::Base.field_error_proc
表单中有错误时。
快速编辑:我忘了提到我正在使用 simple_form 来生成这个表单。我尝试在simple_form.rb
配置文件中寻找一种自定义方法,但我没有看到任何方法。
解决方案 经过进一步调查,事实证明该表单也使用nested_form gem 来生成表单(不仅仅是simple_form)。这个生成器导致 fields_for 被包装在 div 标签中。感谢大家的建议!