我想要我的rails 3。X控制器在被ajax调用时呈现部分视图而不是整个视图。我看到过像
这样的例子def show
@rec = Rec.find(params[:id])
respond_to do |format|
format.html
format.js { render partial: @rec } # for ajax response
end
end
但是对于rails响应与部分我必须追加。js到我的url或设置dataType: 'script'在我的ajax调用。我试着
$.get("/recs/1.js")
.done(function(data) {
$('#right_pane').html(data);
})
和
$.ajax({
url: "/recs/1",
dataType: "script"
}).done(function(response) {
$('#feed_right').html(response);
})
然而,如果我做这些事情中的任何一个,我得到解析器或语法错误从jquery,可以理解的是,因为我返回HTML不是javascript。
关于如何巧妙地做到这一点,而不诉诸于js.erb的想法?
我将.js附加到url中,然后将dataType设置为html,如下所示。
$.ajax({
url: "/recs/1.js",
dataType: "html"
}).done(function(response) {
$('#feed_right').html(response);
})