使 has_many :through 不可删除
Make has_many :through not deleteable
我在加入的模型上使用了活动标志,而不是删除它们。我如何指定一个条件来防止销毁这些条目的可能性?
您应该覆盖 model/models 中的 destroy 方法。
可以在这里找到类似的解决方案:
你也可以选择paranoia gem。这将使用 deleted_at 时间戳进行软删除,并添加必要条件以过滤掉 'deleted' 条记录。
如果想保留活跃栏目,可以阅读源码寻找灵感。基本上它只是为任何包含它的 class 添加一个默认范围,并通过以下方式替换销毁:
def destroy
transaction do
run_callbacks(:destroy) do
touch_paranoia_column
end
end
end
所以代替
touch_paranoia_column
您可以使用
update_attribute(:active, true)
希望这对您有所帮助。
最好在 table 中创建一个新字段并将其命名为 is_deleted,数据类型为 boolean.And 更新它而不是破坏数据。
我在加入的模型上使用了活动标志,而不是删除它们。我如何指定一个条件来防止销毁这些条目的可能性?
您应该覆盖 model/models 中的 destroy 方法。
可以在这里找到类似的解决方案:
你也可以选择paranoia gem。这将使用 deleted_at 时间戳进行软删除,并添加必要条件以过滤掉 'deleted' 条记录。
如果想保留活跃栏目,可以阅读源码寻找灵感。基本上它只是为任何包含它的 class 添加一个默认范围,并通过以下方式替换销毁:
def destroy
transaction do
run_callbacks(:destroy) do
touch_paranoia_column
end
end
end
所以代替
touch_paranoia_column
您可以使用
update_attribute(:active, true)
希望这对您有所帮助。
最好在 table 中创建一个新字段并将其命名为 is_deleted,数据类型为 boolean.And 更新它而不是破坏数据。