1

我只想在 User 模型中阻止销毁和删除,并且我想阻止回调。简而言之,我想阻止任何删除用户记录的可能性。我尝试覆盖destroy和delete方法,但它们没有被调用并且用户总是被删除。

class User < ActiveRecord::Base
  def destroy
  end

  def delete
  end
end

我不想使用任何与此相关的 gem,所以不要引用任何 gem。我不确定重写这些方法是否是个好主意,也许我应该创建一个“停用”方法并将默认的删除和销毁方法保留在那里,以防万一我在 Rails 控制台中需要它们

4

2 回答 2

1

请参阅 Rails API 方法。

只要您知道自己在做什么以及后果,覆盖这些方法不一定是坏事。有时这是解决问题的最干净的方法。

我的建议是查看以下 Rails API 方法文档条目,并确保此处没有遗漏任何重要操作。

#破坏

#破坏!

#删除

通过在模型中创建这些方法,它将覆盖继承的 Rails API 中的任何内容,因此它应该可以正常工作。

于 2016-06-27T19:14:54.200 回答
0

我不确定我是否完全理解你的问题。

一种方法是将destroyanddelete方法设为私有。

你说这些方法永远不会被调用,但是对象无论如何都会被删除。这是怎么发生的?您是否要从集合中删除它们?您可能需要重写一个类方法,User而不是这两个实例方法。

于 2012-06-08T10:47:21.677 回答