我在我加入的模型上使用了一个活动标志,而不是删除它们。如何指定阻止破坏这些条目的条件?
答案 0 :(得分:1)
最好在表中创建一个新字段,并将其命名为is_deleted,数据类型为boolean.And更新它而不是销毁数据。
答案 1 :(得分:0)
您应该在模型/模型中覆盖destroy方法。
可在此处找到类似的解决方案:https://stackoverflow.com/a/9333524/4416209
答案 2 :(得分:0)
您也可以使用paranoia gem。这将使用deleted_at时间戳进行软删除,并添加必要条件以过滤掉已删除的'记录。
如果您想保留活动列,可以阅读源代码以获取灵感。基本上它只是为包括它的任何类添加一个默认范围,并用以下内容替换destroy:
def destroy
transaction do
run_callbacks(:destroy) do
touch_paranoia_column
end
end
end
所以
的内心touch_paranoia_column
您可以使用
update_attribute(:active, true)
希望这能帮到你。