【发布时间】:2015-03-02 00:02:06
【问题描述】:
我正在尝试设置默认范围,以便软删除 notified: true 的用户。 notified 是一个布尔数据列。
这是我尝试过的:
class User < ActiveRecord::Base
default_scope { where('notified != ?', true) }
#...
end
但是这样一来,任何范围内都不会出现用户。即 - 所有用户似乎都被软删除,即使是带有notified: false 或notified: nil 的用户。我的示波器有什么问题?
【问题讨论】:
-
你能告诉我们代码帽子也在做删除吗?
-
@TarynEast 用户实际上并没有被删除。设置 default_scope 会“软删除”它们,因此它们不再包含在数据库查询中,但它们仍在数据库中。我不相信还有其他相关代码。
-
Yes.. 实际删除用户的代码行。你用的是
User.delete_all还是什么? -
对不起,你说他们都被删除了,在你的评论中你说他们都没有被删除......这是哪个?
-
哦,等等——你不是说他们被删除了……你的意思是“当我尝试获取用户时,用户没有出现”……这是完全不同的事情。跨度>
标签: ruby-on-rails ruby activerecord scope default-scope