4 class FilterList < Base
5 attr :filter_key, :filter_item_name
9 @list_manifest['args']['filter_item_name'] ||= @list_name.gsub(/^by_/, '')
10 @list_manifest['args']['filter_key'] ||= @list_manifest['args']['filter_item_name'] + '_id'
15 @filter_item_name = @args['filter_item_name']
16 @filter_key = @args['filter_key']
19 def self._add_action item_name, action_name, list_name, list_conf
21 model = item_name.classify.constantize
22 controller_name = model.plural + 'Controller'
23 controller = controller_name.constantize
24 list_list_conf = Pettanr::Application::manifest.list(item_name).lists[list_name] || {}
25 from = list_list_conf['from']
26 filter_model = from.classify.constantize
27 filter_key = list_list_conf['filter_key']
28 return if controller.method_defined?(action_name)
29 controller.define_method(action_name) do
30 filter_list filter_model, params