我有一个ActiveRecord模型及其设置方式,我从不删除任何东西。相反,我有一个布尔列,如果删除记录则为true,否则为false。我在这个模型上执行了几个.where查询。我想要一个很好的方法来自动将条件“:deleted => 0”添加到我所做的所有.where调用中,以便我永远不会检索已删除的记录。
我最初的本能是扩展ActiveRecord的'where'方法,但似乎没有where方法。
以最面向对象的方式实现上述功能的最佳方法是什么?
感谢。
答案 0 :(得分:3)
听起来你想设置default_scope
:
在模型中使用此宏来为模型上的所有操作设置默认范围。
这样的事情:
class M < ActiveRecord::Base
default_scope where(:deleted => 0)
#...
end