39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
# File 'lib/make_model_searchable.rb', line 39
def search(search_term)
valid_fields = self.instance_variable_get(:@selected_fields)
if valid_fields.present?
if search_term
search_term = "%#{search_term.downcase}%"
users = self.arel_table
arel_node = Arel::Nodes::Node.new
valid_fields.each_with_index do |val, index|
if index == 0
arel_node = users[val].lower.matches(search_term)
else
arel_node = arel_node.or(users[val].lower.matches(search_term))
end
end
where(arel_node)
else
all
end
else
raise Exception, "Please pass valid attributes for class: #{self.name}"
end
end
|