2016-10-21 13 views
2

の整数値で、私は今、私は価格が文字列であるRailsは、ソート文字列

MyModel.order('price DESC') 

を使用して、価格機能でソート実装する必要が戦略的なミスを犯しました型のデータベースでは、例えば50を2000より大きくします。

データベース構造を変更せずに.order()を実装する方法はありますか?

編集:私は価格列のタイプ(整数)を補正するように切り替え

。リファクタリングには1時間しかかかりませんでした。 PostgreSQLので

+0

どのrdbmsを使用していますか? – potashin

+0

私はPostgreSQLを使用しています –

+2

可能であれば、列の型を文字列から浮動小数点に移行する方が良いと思います。それ以外の場合は、列: 'ORDER BY price :: float'をキャストする必要があります。 –

答えて

5

あなたは(あなたがあなたを決めた後、100%に正しい 1を列の型を移動して、変更されません)integer/float/decimalにあなたの文字列をキャストすることになるでしょう:

MyModel.order('price::integer DESC') 

はこれを考えてみましょうanswerを使用すると高速に動作します。