Override default find conditions for model
Wednesday, May 14th, 2008Here is a little trick I use when I want to override a find method for a model, instead of adding the conditions option to my association. While I don’t think you should avoid using the conditions options in your associations, this will provide an alternative:
class ModelName < ActiveRecord::Base def self.find(*args) with_scope(:find=>{ :conditions=>LIMIT_CONDITION }) do super(*args) end end end
Basically what is happening, is that you are overriding the default find function for a model, and wrapping its own find method with a with_scope call. So now everytime you call Model.find(:all) or whatever options you want, it will execute it under that scope, with the conditions you specify.
