我试图谷歌和阅读它,但我找不到一个简单的解决方案或一个非常好的答案,在这个话题。有许多类似的问题,解决人们的问题。我不知道如何解决我的问题,最重要的是,我仍然不知道为什么还没有人解决这个问题。我认为这是一个很常见的问题。
我用的是Rails 4和Mongoid4和。我想为User实现一个软删除。这是可行的。
然而,我有一个Event模型,has_and_belongs_to_many :users, inverse_of: nil。
当我软删除一个用户(他是事件的用户)时,我似乎无法找到默认获取该用户的方法。由于使用deleted_at: nil的用户的默认作用域,因此不会获取软删除用户。
有人在外面启发你吗?
如何开始实现类似于ActiveRecord提供的内容:
has_and_belongs_to_many :users, -> { *a defined scope* }发布于 2015-08-04 16:13:38
我不确定我是否完全理解了您,但不应该调用另一个使用unscoped的范围来满足您的需要。医生来了。
default_scope { where(deleted_at: nil) }
scope :some_other_scope, -> { unscoped.where(something_else: true) }编辑
啊,我明白了。这不是最优雅的方式,但如果您打算不更改用户模型的default_scope,则可能:
# Event model
def all_users
User.unscoped.where(event: self)
endhttps://stackoverflow.com/questions/30323127
复制相似问题