我的删除按钮坏了 - ActiveRecord出错了

时间:2013-01-05 00:51:09

标签: ruby-on-rails-3 activerecord

这很完美,现在我不确定发生了什么。

以下是错误:

ActiveRecord::RecordNotFound at /status_updates/92
Couldn't find User with id=92

ActiveRecord::RecordNotFound at /status_updates/delete_all
Couldn't find User with id=delete_all

我发现有多个状态更新的用户会发生什么。这里应该引用属于该用户的状态更新92。

我没有更改任何与此直接相关的代码,因此我怀疑它与我尝试使用我的咖啡脚本进行的更改有关。 (我从我的gem文件中删除了它,运行了bundle install,然后决定尝试不删除它,所以我把它放回gem文件中,再次运行bundle install ...就是这样。)

无论如何,当我在show.html中并且点击我的删除按钮时,会发生错误。 delete_all或删除单数status_update。

以下是所有这些的控制器方法,我根本没有改变:

def show
 @user = User.find(params[:id])
 @status_updates = @user.status_update
end

def destroy
 @status_update.destroy
 flash[:success] = "Status update deleted!"
 redirect_to status_update_path(current_user.id)
end

def delete_all
 @all_status_updates = current_user.status_update
 @all_status_updates.delete_all
 flash[:success] = "All status updates deleted!"
 redirect_to status_update_path(current_user.id)
end 

在我的控制台中,我可以查找此用户并查看其状态更新,状态更新就像我期望的那样。这是件好事。

但是ActiveRecord突然找不到它们了?

哦,是的..这是我的关于delete_all按钮的status_updates的宝石文件

resources :status_updates do 
 collection do 
   delete :delete_all
 end
end 

删除按钮如下所示:

 <%= link_to "delete", status_update, method: :delete %> 
 <%= link_to "Reset Log", delete_all_status_updates_path, method: :delete, data: { confirm: "Are you sure? Once this log is reset there is no going back!"}%> 

我把那些放在那里展示他们的道路。

这应该教我编写测试并将所有工作推送到git而不是运行不安全:/

谢谢!

1 个答案:

答案 0 :(得分:0)

您的第一个问题是,您很可能没有正确启用javascript。在Rails中,delete方法是通过javascript完成的。确保在布局中正确包含所有js文件并application.js。你需要有原型或jquery。