1

这很简单。

我正在尝试使用 mongoid 的 'after_destroy' 回调来执行一些清理操作。

例如

class Model
    include Mongoid::Document

    after_destroy do |model|
        #Do cleanup stuff
    end
end

有两种方法可以从 mongo 中删除对象。删除和销毁。Destroy 运行回调,但 Delete 不运行。

模型的路线是这样声明的

  resources :models

所以我的问题是,当有人向models/delete 发送请求时,是调用destroy 方法还是调用delete 方法?

如果是后者,那么有什么方法可以使用 mongo.delete 函数运行回调。

4

1 回答 1

1

创建的 HTTP 方法 :deleteresources :models与模型中使用的方法没有直接关系。HTTP 删除调用此方法:

class ModelsController < ApplicationController

  def delete
    model = Model.find(params[:id])
    model.destroy
    redirect_to models_path, notice: "Model removed"
  end
end

您可以在控制器中将“删除”更改为“销毁”以满足您的需要。

于 2013-01-03T15:00:33.727 回答