私のデータベースには、1。grade、2。gradeなどのグレードを含む名前列を持つテーブルがあります。数値が10以上になると、ソートされたレコードセットで10.gradeが2.gradeの前に来るため、ソートが希望どおりに機能しません。これは、文字列の並べ替えが整数の並べ替えとは異なるためです。問題は、これらの文字列を数値で並べ替える方法です。
成績記録は祖先プラグインを使用して構築されたツリーの一部であるため、並べ替えコード全体を:order => "(結果を並べ替えるコード)"内に配置する必要があります。
私は試し:order => "CAST(SUBSTRING_INDEX(name, '.') AS SIGNED)"
ました。しかし、これは機能しません。
開発環境ではSQLiteを使用し、本番環境ではMySQLを使用しています。