13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
# File 'lib/has_filter.rb', line 13
def filter(filtering = nil)
return [] unless filtering
conditions = filtering
filters = []
conditions = conditions.select { |k, v| self.column_names.include? k.to_s }
if @_filters.present?
conditions = conditions.select { |key| @_filters.include? key }
end
if conditions.empty?
filters << _hash_conditions(:id, nil)
else
filters << _set_filters(conditions)
end
filters = filters.flatten
find(:all, :conditions => filters)
end
|