在Rails 3中的渲染部分上使用ajax

时间:2010-10-20 20:16:59

标签: jquery ruby-on-rails partial

我正在使用Rails 3将部分(表单)加载到另一个页面,其中包含以下代码。问题是我想使用:remote =>在表单上为true并在其上使用ajax(验证)等。

$("#form_open").bind("ajax:complete", function(et, e){

    $("#form_area").html(e.responseText);
    $("#form_open").html("Add contact information");

});

这似乎不可能。为什么我不能在这种情况下使用ajax?

2 个答案:

答案 0 :(得分:2)

如果我理解了这个问题,我想你想要做的是让ajax调用将部分元素渲染到当前页面的某个元素中吗?

在当前视图中:

<%= link_to 'Add Contact Info', add_contact_info_path, :remote => true %>

显然你必须让add_contact_info_path路由到一个动作,该动作应该呈现一些js.erb。那个js.erb应该输出一些更新#form_area和#form_open的javascript。所以你可以有一个add_contact_info.js.erb(在jQuery中):

$('#form_area').html("<%= escape_javascript(render('somepartial')) %>");
$('#form_open').html("Add contact information");

这会将“_somepartial.html.erb”部分呈现为具有id ='form_area'的任何元素。

答案 1 :(得分:1)

我猜这篇文章可以帮到你。 Reload Partial (Rails Ajax)