Я использую jQuery UI в своем приложении Rails 3.1.Это базовое приложение CRUD, структурированное парой «главных» контроллеров, которые обрабатывают общую структуру приложения - целевые страницы и рабочий процесс, а затем другие контроллеры, которые обрабатывают взаимодействия модели (через запросы ajax).
Многомоего приложения использует встроенное редактирование для форм и тому подобное, и у меня есть много таких частичек, как:
_action_list.html.erb
<script>
$("#action-new").button({
icons: {
primary: "ui-icon-plus"
}
});
$(".buttonset").buttonset();
$("#actions").accordion();
</script>
<div id="actions" class="ui-widget-content ui-corner-all">
<% @segment.action_items.each do |action_item| %>
<%= render action_item %>
<% end %>
</div>
<div id="new-action">
</div>
<br />
<%= link_to "New Action",
new_report_segment_action_item_path(@segment.report, @segment),
{:id => "action-new", :method => :get, :remote => true} %>
который обрабатывается с помощью action_list.js.erb :
$("#actions").html("<%= escape_javascript(render "action_list") %>")
Все работает так, как должно при первой загрузке страницы, однако после прохождения процесса редактирования (форма редактирования визуализации ->save -> rerender action_list) некоторые элементы jQuery (в данном случае аккордеон) отображаются не так, как должны, т.е. без применения стиля jQuery.Я знаю, что это, вероятно, связано с тем, что элемент необходимо повторно привязать с помощью делегирования события - в общих чертах здесь & здесь .
Итак, я хочучтобы извлечь встроенный JS в файлы конвейера активов, а затем реализовать делегирование событий, чтобы связывание элементов происходило в фоновом режиме - я хочу, чтобы все JS не попадали в мои представления.Как мне выполнить этот «путь Rails», не прибегая к написанию всех моих функций ajax в jQuery?