Я искал подобный ответ, и я не нашел его на SO. Однако я наткнулся на этот кусочек магического кода: string(:sort_title) { title.downcase }
.
Теперь немного объясняю. Solr (sunspot) не позволит вам сортировать/заказывать по типу текста, а тип строки не может быть чувствительным к регистру. Таким образом, я подумал о следующем решении. Допустим, у вас есть поле field1
, которое вы хотите отсортировать, используя сортировку без учета регистра. Затем вы создаете другое поле в поисковой части индексации, назовем его field2
со значением field1.downcase
. Затем вы заказываете field2
и извлекаете результаты. Таким образом, вы можете сохранить как тип case (в поле1, который позволяет легко и правильно отображать данные), так и отсортировать по типу case (с помощью поля2). Это должно выглядеть немного как это:
class Test < ActiveRecord::Base
searchable do
string(:field1) { your_class_field }
string(:field2) { your_class_field.downcase(same as above) }
end
end
Ответ пришел немного поздно для вас, но, может быть, какой-то другой парень выиграет от этого!
Нет, мне не опоздало, ошибка, которую я хочу исправить, так долго оставалась открытой. > _ < –
хорошо надеюсь, что это вам помогло: D –