2011-09-19 2 views
1

を私はちょうど3.1へのレール3からのアップグレード、およびこのエラーを取得しています:この行ののRails 3.1は、MySQLのソート破っ::時間

NoMethodError (undefined method `<=>' for #<Mysql::Time:2011-01-12 00:00:00>): 

payments = Payment.all(:select => 'date(created_at) as day, amount', :order => 'created_at', 
:conditions => ["status = ?"], 1) 
payments.group_by(&:day).sort 

任意のアイデアを修正する方法?

答えて

1

を。私はmysql2 gem(https://github.com/brianmario/mysql2)に切り替えて、パフォーマンスを維持しながら問題を解決しました。

1

明示的ルビー時間オブジェクトに行をキャストしようとすることができます:

それを修正
payments.group_by(&:day).sort{ |x,y| Time.parse(x) <=> Time.parse(y) } 
+0

これはうまくいきました。しかしTime.parse(x.to_s)をしなければならなかった。非常に非効率的で、パフォーマンスに10秒以上かかる。 – Hisham

関連する問題