Rails - AJAX模态对话框?

时间:2010-10-31 22:17:38

标签: jquery ruby-on-rails ruby-on-rails-3

我有兴趣学习如何使用AJAX模式对话框。通常,如果我想在我的网站上添加模态对话框,我在主JS文件中添加了jquery UI对话框代码,并将其绑定到ID。

我相信使用Rails我可以创建一个Link,它从服务器获取所有对话框代码,然后打开对话框。

这是真的吗?

如果是这样,你可以通过提供一个简单的例子来帮助我理解轨道MVC世界中的所有东西吗?

由于

1 个答案:

答案 0 :(得分:36)

天哪,你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样式,以便对话框呈现美观漂亮。