4

ソート時の黒点とエンコンディングの問題に一連の問題があります。主な問題は、アクセントのあるブラジル語の使用です。たとえば、次のような一連の名前の場合:

  • アルベルト
  • アナ
  • マリア
  • アルバロ

order_by メソッドを呼び出した後、名前 Álvaro は常にリストの最後に表示されます。

これは、列名のクラス設定です。

class Student < ActiveRecord::Base
 searchable do
   text(:name)
   text(:code)
   string :name_sort do 
     name
   end
 end

 def search(options)
    students = Student.search do 
      fulltext(options[:data])
      order_by :name_sort
    end
    students.results
 end
end

誰でも助けることができますか?ありがとうルイス

4

1 に答える 1

6

インデックス作成時に文字変換を使用してみることができます

class Student < ActiveRecord::Base
  searchable do
    text(:name)
    text(:code)
    string :name_sort do 
      I18n.transliterate name
    end
  end

  def search(options)
    students = Student.search do 
      fulltext(options[:data])
      order_by :name_sort
    end
    students.results
  end
end
于 2012-04-10T20:53:27.533 に答える