0

这工作得很好,现在我不确定发生了什么。

以下是错误:

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应该是指属于这个用户的状态更新92。

我没有更改与此直接相关的任何代码,因此我怀疑这与我尝试使用咖啡脚本进行的更改有关。(我从我的 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 而不是运行不安全的:/

谢谢!

4

1 回答 1

0

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

于 2013-01-05T01:06:01.897 回答