app/models/effective/effective_datatable/resource.rb in effective_datatables-4.7.6 vs app/models/effective/effective_datatable/resource.rb in effective_datatables-4.7.7
- old
+ new
@@ -162,31 +162,19 @@
raise "column #{name} unexpected search value"
end
search = opts[:search]
- if search[:collection].kind_of?(ActiveRecord::Relation)
- search[:collection] = search[:collection].map { |obj| [obj.to_s, obj.to_param] }
- elsif search[:collection].kind_of?(Array) && search[:collection].first.kind_of?(ActiveRecord::Base)
- search[:collection] = search[:collection].map { |obj| [obj.to_s, obj.to_param] }
- elsif search[:collection].kind_of?(Array)
- search[:collection].each { |obj| obj[1] = 'nil' if obj[1] == nil }
- elsif search[:collection].kind_of?(Hash)
- search[:collection].each { |k, v| search[:collection][k] = 'nil' if v == nil }
- end
-
+ search[:as] ||= :select if search.key?(:collection)
+ search[:fuzzy] ||= true unless search.key?(:fuzzy)
search[:value] ||= search.delete(:selected) if search.key?(:selected)
- search[:as] ||= :select if search.key?(:collection)
+ # Merge with defaults
+ search_resource = (opts[:resource] || effective_resource || fallback_effective_resource)
- search[:fuzzy] = true unless search.key?(:fuzzy)
-
- if search[:as] == :select && search.key?(:collection)
- # No Action
- elsif array_collection? && opts[:resource].present?
- search.reverse_merge!(opts[:resource].search_form_field(name, collection.first[opts[:index]]))
+ if array_collection? && opts[:resource].present?
+ search.reverse_merge!(search_resource.search_form_field(name, collection.first[opts[:index]]))
elsif search[:as] != :string
- search_resource = (opts[:resource] || effective_resource || fallback_effective_resource)
search.reverse_merge!(search_resource.search_form_field(name, opts[:as]))
end
# Assign default include_null
if search[:as] == :select && !search.key?(:include_null)