嘿,我看过几篇关于这个问题的帖子,但是在调用 :method => 'delete' 时仍然遇到了问题,导致重定向到我的控制器的 show 方法。 destroy 方法按预期工作,即删除评论,但是在请求完成后,会在 GET 上抛出404。这是代码:
<%= link_to 'delete', "/events/#{@event.id}/comments/#{comment.id}.js",
:confirm => 'Are you sure?',
:method => :delete,
:remote => true %>
以下是控制器方法:
def destroy
@comment = @event.comments.find(params[:id])
@comment.destroy
redirect_to do |format|
format.html # redirect_to @event, :notice => "comment deleted" }
format.js { render 'destroy.js.erb' }
end
end
我听说这可能是由于没有使用button_to造成的,但是我已经尝试过使用button_to而不是link_to,但是结果仍然相同。
我也听说这可能是由于你在设置中使用jquery的方式存在问题,但我感觉不太可能。无论如何,以下是我调用jquery的方式(application.html.erb):
<%= javascript_include_tag 'jquery-1.5.2.min.js', 'rails', 'application' %>
<%= javascript_include_tag 'jquery-ui-1.8.17.custom.min.js' %>
当我查看Rails服务器输出时,我看到它说:
Redirected to http://0.0.0.0:3000/events/1/comments/35
Completed 302 Found in 132ms
ACTION NAME application
Started GET "/events/1/comments/35" for 127.0.0.1 at Wed Feb 08 16:31:43 -0800 2012
AbstractController::ActionNotFound (The action 'show' could not be found for CommentsController):
谢谢您的帮助!