столкнулся с этой проблемой тоже.Postgres учитывает регистр с оператором LIKE, поэтому вот что я сделал в проекте.Кроме того, я не люблю запускать postgres локально, поэтому у меня он работает с LIKE в разработке (mysql / sqlite) и ILIKE в производстве (postgres).ILIKE "нечувствителен к регистру как"
/ config / environment.rb
DATABASE_OPERATOR = {
:like_operator => "LIKE"
}
/ config / environment / production.rb
DATABASE_OPERATOR = {
:like_operator => 'ILIKE' #postgres awfulness
}
Запрос
@students = Student.find(:all, :conditions => ['(concat(first_name, " ", last_name) #{DATABASE_OPERATOR[:like_operator]} ?) OR (concat(first_name, " ", middle_names, " ", last_name) #{DATABASE_OPERATOR[:like_operator]} ?)', "%#{params[:search]}%", "%#{params[:search]}%"])