Rails - AJAX - модальный диалог?

Мне интересно узнать, как AJAX - модальный диалог. Обычно, если я хотел добавить модальный диалог на свой веб-сайт, я добавил код диалога jquery UI в моем основном JS файле и привязал его к ID.

Я верю, что с Rails я могу создать ссылку, которая извлекает весь код диалога с сервера, а затем открывает диалог.

Это правда?

Если да, можете ли вы помочь мне понять, представив простой пример того, где все живет в мире рельсов MVC?

Спасибо

Ответ 1

Гош, ты спросил это 4 месяца назад, так что, вероятно, вы это догадались. У меня также возникли проблемы с поиском хорошей записи о том, как это сделать. Вот что я понял:

На любой странице, которую вы хотите потянуть за этим диалоговым окном, вы хотите иметь такой div (обратите внимание, что вы еще не хотите показывать это):

<div id="person-form" title="Person" style="display:none"></div>

В этом представлении вы также хотите, чтобы вызов Ajax вытащил это диалоговое окно:

<%= link_to 'Edit Profile', edit_person_path(person), :remote => true %>

Очевидно, вы хотите, чтобы этот путь edit_person_path перенаправлялся на какое-либо действие. Это действие должно отображать js.erb, который имеет что-то вроде следующего (в jQuery):

$("#person-form").dialog({
  autoOpen: true,
  height: 600,
  width: 600,
  modal: true,
  title: 'Edit Person',
  buttons: {
    "Edit": function() { $("#edit_person_<%= @person.id %>").submit() },
  },
  open: function() {
    $("#person-form").html("<%= escape_javascript(render('form')) %>")
  },
});

В диалоговом окне будет показано частичное _form.html.erb.

Примечание. Вам понадобится настроить стиль jQueryUI, чтобы диалоговое окно выглядело красиво и красиво.