ssc*_*rus 4 scope ruby-on-rails ruby-on-rails-3
我的系统中有用户可以选择"休眠",此时他们可以完全从系统中删除自己和所有相关记录.我在我的网站上查询了在User表及其相关表中的搜索(由多达5个中间表分隔),并且没有明确测试用户是否正在休眠.
有没有办法将用户设置重新定义为非休眠用户,所以我当前的所有查询都可以在不单独更改的情况下工作?
我怎样才能最优雅地完成我想要做的事情?
这通常使用默认范围完成.阅读所有关于他们
来自Ryan网站的代码:
class User < ActiveRecord::Base
default_scope :hibernate => false
end
# get all non-hibernating users
@users = User.all
# get all users, not just non-hibernating (break out of default scope)
@users = User.with_exclusive_scope { find(:all) } #=> "SELECT * FROM `users`
Run Code Online (Sandbox Code Playgroud)