1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
def self.find_with_fuzzy_keywords(attrs={})
attrs.reject! &:blank?
attrs[:keywords] = [] || attrs[:keywords].collect { |word| "%#{word}%" }
values = []
condition_string = (
attrs.except(:keywords).collect { |key,value|
values << value
"#{key} = ?"
} + attrs[:keywords].collect { |key,value|
values << value
"#{key} LIKE ?"
}
).join(" AND ")
find(
:all,
:conditions => values.unshift(condition_string)
)
end
|