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