尝试用jquery ajax和rails format.js渲染部分的麻烦



我想要我的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);
})

最新更新