Ruby on Rails - Destroy Action返回404

时间:2012-10-05 05:00:45

标签: ruby-on-rails ruby

我在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.我对铁杆很新。有人可以告诉我我的错误吗?

由于

3 个答案:

答案 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