What is the best solution for applying a default condition to a model,
for example only records where active is boolean true? My initial
implementation overrode the find method using with_scope to apply the
condition, but I soon discovered that didn’t work with the
will_paginate plugin.
I currently have a named_scope called :active that applies the
conditions, but I’m not sure how to incorporate that so that it is
always applied to find and find_by_* without having to use it inside
of the controller.
I’d also like to apply a default sort order and have this code. Could
I follow similar logic for applying the condition?
def self.find(*args)
options = args.last.is_a?(Hash) ? args.pop : {}
if not options.include? :order
options[:order] = ‘created_at desc’
end
args.push(options)
super
end