我希望我的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附加到我的网址或设置dataType:'脚本'在我的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获取parserror或syntaxerror,这是可以理解的,因为我返回的是HTML而不是javascript。
关于如何巧妙地做到这一点的想法,而不诉诸js.erb?
答案 0 :(得分:0)
我将.js附加到url然后将dataType设置为html,就像这样。
$.ajax({
url: "/recs/1.js",
dataType: "html"
}).done(function(response) {
$('#feed_right').html(response);
})
我想是有道理的。