На самом деле я просто копирую старый вопрос из railsforum, который он задал ему еще в мае '09, и единственный ответ - это авторское исправление.Интересно, кто-нибудь знает лучший способ?В противном случае я собираюсь использовать javascript для перемещения скрытого поля, как у него.
Вот оригинальный вопрос:
Привет!Благодарен за любые полезные советы по этой теме:
Можно ли переопределить автоматическую генерацию Rails скрытых полей идентификаторов в fields_for для ассоциации has_many?Я хотел бы создать свой собственный, чтобы я мог выбрать, куда это пойдет.
И вот почему:
Я пытаюсь разместить виджет аккордеона jQuery-ui вокруг формы, которая выглядит немноговот так:
<div id="diagram_elements_form">
<% diagram_form.fields_for :elements do |element_fields| %>
<% link_to "#" do %>
<%= element_fields.object.name %>
<% end %>
<%= render :partial => "edit_element_base", :locals => { :f => element_fields } %>
<% end %>
</div>
модель в упрощенном виде выглядит так:
class Diagram < ActiveRecord::Base
has_many :elements
accepts_nested_attributes_for :elements
end
Мне кажется, у меня есть модель /Контроллер работает правильно, потому что я могу CRUD к душе угодно.Но аккордеон выходит совершенно чокнутым.
Виджет jQuery UI / Accordion ищет html в виде:
<div id="accordion">
<a href="#">First header</a>
<div>First content</div>
<a href="#">Second header</a>
<div>Second content</div>
</div>
Thisкажется, что это легко сделать с помощью рельсов, но я действительно задыхаюсь.Вкладки отображаются, но перекошены, и, наконец, я понял, что это из-за скрытого поля, которое рельсы автоматически добавляют для каждого объекта в fields_for.То, что я получаю, выглядит следующим образом:
<div id="accordion">
<input type="hidden" name="...id" value="2" />
<a href="#">First header</a>
<div>First content</div>
<input type="hidden" name="...id" value="3" />
<a href="#">Second header</a>
<div>Second content</div>
</div>
... Так, что скрытые поля становятся частью структуры аккордеона.Я хотел бы переместить поля идентификаторов внутри тегов DIV.Есть идеи?
Еще раз спасибо, Тайлер
У меня точно такая же проблема, как и у Тайлера.Скрытые поля, сгенерированные fields_for, портят пользовательский интерфейс аккордеона, и в настоящий момент я не вижу способа изменить их положение, кроме как перемещать их с помощью javascript.
Я опубликую ссылку на это сноваrailsforum, так что, надеюсь, Тайлер получит любую пользу от вашей коллективной мудрости.
С уважением,
Кевин.