Я нахожусь в процессе переключения моей среды разработки от sqlite3 до postgresql 8.4 и имею одно последнее препятствие.
В моем оригинале у меня была следующая строка во вспомогательном методе;
result = Users.find(:all, :order => "name collate NOCASE")
который обеспечил очень хороший поиск без учета регистра. Я не могу копировать это для postgresql. Должно быть легким - какие-либо идеи?
Спасибо.
result = Users.find(:all, :order => "LOWER(name)")
Чтобы взять немного от Брэда и Фрэнка.
В SQL можно использовать ORDER BY LOWER(columnname), не знаю, как это сделать в Ruby. Функциональный индекс (также по LOWER(columnname) ) поможет ускорить работу.
Рассматривали ли вы сохранение столбца как типа citext ? На самом деле он просто усваивает вызов функции lower (), насколько я понимаю. Впоследствии это будет автоматически для вас. Если в некоторых случаях вам нужен поиск с учетом регистра, это может быть не лучшей идеей.