Skip to content
Case and accent insensitive search for postgresql
Ruby
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
lib
tasks
test
MIT-LICENSE
README
Rakefile
init.rb
install.rb
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
Something went wrong with that request. Please try again.