0

コールバックを使用して破棄アクションを停止していますが、代わりに :archived_at フィールドを設定したいと考えています。問題は、before_destroy の "return false" によってロールバックが発生し、更新が排除されることです。これに対する解決策は?

class MarkArchived
  def before_destroy(model)
    update_attribute(:archived_at, Time.now) and return false
  end
end

class User < ActiveRecord::Base
  before_destroy MarkArchived
end

class Account < ActiveRecord::Base
  before_destroy MarkArchived
end
4

2 に答える 2

0

私の理解が正しければ、一部のオブジェクト (またはオブジェクトの一部のクラス) をアーカイブし、決して破棄しないでください。この宝石はあなたの使用に適していると思います

于 2012-06-08T15:32:57.767 に答える
0

このようなもの?

def hide_or_destroy
  if shifts.any?
    update(hidden: true)
  else
    destroy
  end
end
于 2015-11-08T19:18:34.530 に答える