我在route.rb
中设置了一些这样的路由resources :users do
resources :lists do
resources :tasks
end
end
当我运行'rake routes'时,我可以看到我的破坏行动的路线:
DELETE / users /:user_id / lists /:id(。:format)
我对此操作的实现如下所示:
def destroy
@user = User.find(params[:user_id])
@user.lists.find(params[:id]).destroy
render json: { status: "success" }
end
如果我评论除了'render'行之外的这个动作的所有行,我将得到JSON结果。然而我的线路收到404.我对铁杆很新。有人可以告诉我我的错误吗?
由于
答案 0 :(得分:0)
您可以在视图中发布您的内容吗?我怀疑你需要在你的链接中指定一个方法,例如:<%= link_to "Delete", [@user, list], method: :delete, remote: true %>
答案 1 :(得分:0)
尝试使用它可能对你有帮助
<%= link_to 'Destroy', [user,list], method: :delete, data: { confirm: 'Are you sure?' } %>
控制器中的
def destroy
@user = User.find(params[:user_id])
@list = @user.lists.find(params[:id]) if @user.present?
if @list.present? && @user.present?
@list.destroy
status = "success"
else
status = "fail"
end
render json: {status: status}
end
答案 2 :(得分:0)
试试这个
List.delete_all(["ID = ? AND user_id = ?", params[:id], params[:user_id]])
或destroy_all