Skip to content

fmluizao/insensitivity

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

About

Case and accent insensitive search for postgresql

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages