1

これは簡単です。

私は mongoid の 'after_destroy' コールバックを使用してクリーンアップ操作を実行しようとしています。

例えば

class Model
    include Mongoid::Document

    after_destroy do |model|
        #Do cleanup stuff
    end
end

mongo からオブジェクトを削除するには 2 つの方法があります。削除して破棄します。Destroy はコールバックを実行しますが、Delete は実行しません。

モデルのルートは次のように宣言されます

  resources :models

私の質問は、誰かがモデル/削除にリクエストを送信すると、破棄メソッドまたは削除メソッドが呼び出されるのですか?

後者の場合、mongo で削除機能を使用してコールバックを実行する方法はありますか。

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

必要に応じて、コントローラで「delete」を「destroy」に変更できます。

于 2013-01-03T15:00:33.727 に答える