0

我在 route.rb 中有一些这样的路由设置

resources :users do
      resources :lists do
        resources :tasks
      end
  end

当我运行“rake routes”时,我可以看到我的销毁操作的路线:

删除 /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 行。我对 Rails 很陌生。有人可以告诉我我有什么问题吗?

谢谢

4

3 回答 3

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
于 2012-10-05T05:21:05.167 回答
0

尝试这个

List.delete_all(["ID = ? AND user_id = ?", params[:id], params[:user_id]])

或者destroy_all

于 2012-10-05T05:21:30.940 回答
0

你能发布你的观点吗?我怀疑您需要在链接中指定一个方法,例如:<%= link_to "Delete", [@user, list], method: :delete, remote: true %>

于 2012-10-05T05:10:25.957 回答