2013-12-19 45 views
0

我正在努力解决我的新cmd恼人的问题:方法destroy不起作用。一切正常,这里是日志:Rails 4破坏行为不起作用

Started DELETE "/admin/videos/1" for 127.0.0.1 at 2013-12-19 19:02:53 +0100 
Processing by Admin::VideosController#destroy as HTML 
    Parameters: {"authenticity_token"=>"yIFTvqxF+ablO8xakneLmlUBLyewaH2syX2Q6QE+9rQ=", "id"=>"1"} 
    User Load (0.9ms) SELECT "users".* FROM "users" WHERE "users"."id" = 1 ORDER BY "users"."id" ASC LIMIT 1 
Redirected to http://localhost:3000/admin/videos 
Completed 302 Found in 5ms (ActiveRecord: 0.9ms) 

我的链接是:

= link_to admin_video_path(video), method: :delete, title: "Delete" do 
    %i.fa.fa-trash-o 
    Canc 

查询后的记录仍然存在!

+2

控制器中的销毁行为是什么样的? –

+0

是的,控制器很高兴看到,你是否真的在你的控制器中调用destroy?日志中的SQL似乎只是选择了记录,却没有对它做任何事情。 –

+0

Omg我失去video.destroy某处!!!!对不起,这个愚蠢的问题。我在模型和视图中失去了2个小时!我试图添加ajax销毁,我离开行评论!再次抱歉! –

回答

0

这是destroy方法应该怎么样子(内部控制器)的示例代码:

def destroy 
    modelnamehere.find(params[:id]).destroy 
    flash[:success] = "modelnamehere deleted." 
    redirect_to modelnamehere_url 
end 
0

确保您没有before_destroy回调没有返回比true其他任何东西。即使无意中返回nil也会阻止destroy方法停止方法链,从而无法成功执行。

tl; dr确保任何before_destroy回调总是返回true的任何成功案例。