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