2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
# File 'lib/finder_filter.rb', line 2
def finder_filter(*args)
options = args.
name = args.empty? ? controller_name.singularize : args.first
by = options.delete(:by)
param = options.delete(:param) || :id
prepend = options.delete(:prepend) || false
send(prepend ? :prepend_before_filter : :before_filter, :"find_#{name}", options)
define_method "find_#{name}" do
klass = name.to_s.classify.constantize
item = by ? klass.send("find_by_#{by}", params[param]) : klass.find(params[param])
instance_variable_set("@#{name}", item)
end
end
|