我的删除按钮坏了-与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

发生的情况是,我的用户有很多状态更新。这里应该指属于这个用户的状态更新。

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

无论如何,错误发生时,我在show.html中,我点击我的删除按钮。对于单个status_update,可以使用delete_all或delete。

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

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的gem文件

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,而不是不安全地运行:/

谢谢!

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

相关内容

  • 没有找到相关文章

最新更新