使用其他条件扩展所有ActiveRecord SQL调用

时间:2011-11-01 04:59:08

标签: ruby-on-rails ruby-on-rails-3 activerecord

我有一个ActiveRecord模型及其设置方式,我从不删除任何东西。相反,我有一个布尔列,如果删除记录则为true,否则为false。我在这个模型上执行了几个.where查询。我想要一个很好的方法来自动将条件“:deleted => 0”添加到我所做的所有.where调用中,以便我永远不会检索已删除的记录。

我最初的本能是扩展ActiveRecord的'where'方法,但似乎没有where方法。

以最面向对象的方式实现上述功能的最佳方法是什么?

感谢。

1 个答案:

答案 0 :(得分:3)

听起来你想设置default_scope

  

在模型中使用此宏来为模型上的所有操作设置默认范围。

这样的事情:

class M < ActiveRecord::Base
  default_scope where(:deleted => 0)
  #...
end