fernandoluizao / insensitivity
- Source
- Commits
- Network (0)
- Issues (0)
- Downloads (2)
- Wiki (1)
- Graphs
-
Branch:
master
| name | age | message | |
|---|---|---|---|
| |
MIT-LICENSE | ||
| |
README | ||
| |
Rakefile | ||
| |
init.rb | ||
| |
install.rb | ||
| |
lib/ | ||
| |
tasks/ | ||
| |
test/ | ||
| |
uninstall.rb |
README
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

