无论如何要为所有活动记录模型添加查找条件?
那就是我想要这个查询
ExampleModel.find :all, :conditions=> ["status = ?", "active"]
行为方式与
ExampleModel.find :all
在每个模型中
谢谢!!
无论如何要为所有活动记录模型添加查找条件?
那就是我想要这个查询
ExampleModel.find :all, :conditions=> ["status = ?", "active"]
行为方式与
ExampleModel.find :all
在每个模型中
谢谢!!
你可以使用default_scope
:
class ExampleModel < ActiveRecord::Base
default_scope :conditions => ["status = ?", "active"]
end
如果您想在所有模型中使用它,您可以ActiveRecord::Base
在所有模型中继承并派生它(可能不适用于单表继承):
class MyModel < ActiveRecord::Base
default_scope :conditions => ["status = ?", "active"]
end
class ExampleModel < MyModel
end
...或者您可以设置default_scope
onActiveRecord::Base
本身(如果您决定一个模型不应该具有此默认范围,可能会很烦人):
class ActiveRecord::Base
default_scope :conditions => ["status = ?", "active"]
end
class ExampleModel < ActiveRecord::Base
end
正如 klochner 在评论中提到的,您可能还需要考虑添加一个named_scope
to ActiveRecord::Base
,命名为active
,例如:
class ActiveRecord::Base
named_scope :active, :conditions => ["status = ?", "active"]
end
class ExampleModel < ActiveRecord::Base
end
ExampleModel.active # Return all active items.