「よろしいですか? 」という迷惑なポップアップを表示するのではなく、レコードを破棄するときに「元に戻す」メソッドをgmailで使用することが重要だと思います。
これを実装した方法は、モデルに「deleted_at」タイムスタンプ列を作成し、destroyメソッドが呼び出されたときにタイムスタンプを取得することです。
def destroy
@foo = Foo.find(params[:id])
@foo.update_attribute(:deleted_at, Time.now)
...
end
元に戻す/元に戻すには、同じ列を nil に設定します
def revert
@foo = Foo.find(params[:id])
@foo.update_attribute(:deleted_at, nil)
...
end
find メソッドを呼び出すときに、「削除された」foo を除外する条件を追加するだけです。おそらく、しばらくしてから「削除された」fooを実際に破棄するようにcronまたはバックグラウンドタスクを設定します。
私にとっては機能し、実装も簡単ですが、この機能を実装するためのより良い方法があるかどうか知りたいですか? たぶん、私が知らないこれを提供するプラグインまたは宝石がありますか?