Это простой вопрос, который мне стыдно задавать, но я бился головой о стену и безуспешно перемещался по документации рельсов 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 для генерации формы (не только simple_form). Этот генератор вызывал включение fields_for в тег div. Спасибо всем за их предложения!