Rails - AJAX модальный диалог? - PullRequest
11 голосов
/ 01 ноября 2010

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

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

Это правда?

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

Спасибо

1 Ответ

36 голосов
/ 16 марта 2011

Гоша, ты спросил это 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, чтобы диалоговое окно отображалось красиво и красиво.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...