Javascript 在ajax回调上重新加载Rails部分
在MyRails应用程序中,用户可以在文件夹中创建新的博客文章。我想在用户创建新帖子时刷新包含所有文件夹帖子的部分内容。我试图在folders控制器中创建一个操作,该操作只需再次调用分部并替换它,但我得到一个CanCan::AccessDenied 500错误 在my index.html.erb中,这是指向“我的文件夹显示部分”的链接:Javascript 在ajax回调上重新加载Rails部分,javascript,ruby-on-rails,ruby,ajax,cancan,Javascript,Ruby On Rails,Ruby,Ajax,Cancan,在MyRails应用程序中,用户可以在文件夹中创建新的博客文章。我想在用户创建新帖子时刷新包含所有文件夹帖子的部分内容。我试图在folders控制器中创建一个操作,该操作只需再次调用分部并替换它,但我得到一个CanCan::AccessDenied 500错误 在my index.html.erb中,这是指向“我的文件夹显示部分”的链接: <%= link_to folder_path(folder), remote: true %> Ajax\u load\u events.js
<%= link_to folder_path(folder), remote: true %>
Ajax\u load\u events.js:
$("#panel-container").replace_html('<%= escape_javascript(render(:partial => "contents", :locals => {:folder => @folder})).html_safe %>');
您可能没有正确定义用户能力。尝试将以下行之一添加到能力文件的底部:
can :ajax_load_events, Folder
允许用户执行特定的控制器操作
或:
它允许用户在资源上执行所有类型的操作,而不仅仅是CRUD
$("#panel-container").replace_html('<%= escape_javascript(render(:partial => "contents", :locals => {:folder => @folder})).html_safe %>');
$("#save-entry").click(function(){
$.ajax({
type: "POST",
url: "/submissions",
dataType: "json",
data: {title: $("#title-create-partial").text(), content: $("#content-create-partial").text(), folder_id: <%= @folder.id %>},
complete: function(){
$.get("/ajax_load_events/", {folder: <%= @folder.id %>}, null, "script");
}
});
})
get "/ajax_load_events(.:format)" => "folders#ajax_load_events"
can :ajax_load_events, Folder
can :manage, Folder