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 回答