fmluizao/insensitivity
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
Insensitivity
==========
Insensitivity is a rails plugin that helps to do case and accent insensitive searches in PostgreSQL
It change the WHERE conditions to translate the field removing accents and applying lowercase
NOTE: I'm abandonning the *_search fields approach and making the plugin PostgreSQL specific.
If you want to use the old aproach, it is tagged as 0.0.1
Example
=======
Migration:
create_table :foos do |t|
t.string :field1
t.string :field2
end
Model:
class Foo < ActiveRecord::Base
insensible :field1, :field2
end
Foo.find_by_field1('bla')
SELECT * FROM foos
WHERE TRANSLATE(LOWER(widgets.field1),
'âãäåāăąèééêëēĕėęěìíîïìĩīĭóôõöōŏőùúûüũūŭůç',
'aaaaaaaeeeeeeeeeeiiiiiiiiooooooouuuuuuuuc') = 'bla'
Foo.find(:first, :conditions => ['field1 = ?', 'bla'], :order => 'field1')
SELECT * FROM foos
WHERE TRANSLATE(LOWER(widgets.field1),
'âãäåāăąèééêëēĕėęěìíîïìĩīĭóôõöōŏőùúûüũūŭůç',
'aaaaaaaeeeeeeeeeeiiiiiiiiooooooouuuuuuuuc') = 'bla'
ORDER BY field1 LIMIT 1
Copyright (c) 2009 Fernando Luizao, released under the MIT license