RAILS- Búsquedas ignorando acentos y mayúsculas, Unaccent Postgresql

18-04-2019

creawww.com

añadir la extension de postgres Unaccent

añadimos como una migracion la migracion

rails g migration EnableUnaccentExtension

modificar el codigo

class PostgressExtentionUnaccent < ActiveRecord::Migration[5.2]
    def up
        execute "create extension IF NOT EXISTS unaccent"
    end

    def down
        execute "drop extension unaccent"
    end
end

ejecutar la migraciones de Rails

  rails db:migrate

añadir codigo al controller con un condicional para que solo se ejecute en postgresss

  @people = Person.where('unaccent(name) ILIKE unaccent(?)', "%#{params[:word_filtered]}%")

en el servidor se produccion segun los permisos que disponga el raisl, no podra activar la extension y tendermos que hacerlo manualmente

sudo -u postgres bash -c "psql" << EOF
\c name_bd;
CREATE EXTENSION IF NOT EXISTS "unaccent";
\q
EOF