2017-10-13 15 views
0

私はActiveRecordのクエリによって返さこの配列があります。Rubyの配列のソート順

SELECT id, value FROM table ORDER BY value DESC 
[1054, 86], [1062, 86], [1059, 84] 

をそして、私は最初の配列と比較する単純な配列を作成しました:

array.sort_byを! {|オブジェクト| object.access_count}} .reverse

しかし、私は二つの配列を比較したときに結果が異なります。

activerecord => [1054, 86], [1062, 86], [1059, 84] 
array.sort_by! => [[1062, 86], [1054, 86], [1059, 84] 

だから、いくつかのケースではインクルードは、ActiveRecordのが一つの方法とsort_byをソートするために動作しません比較!別のものを並べ替えます。

どうすれば解決できますか?おかげさまで

+0

あなたは両方を比較して何を達成しようとしていますか?もう少し説明できますか? @ gui12344455 –

+0

はい、私は自分のコードをテストするためにrspecを使用しています。一つのテストは、返されたデータが正しくソートされているかどうかを確認することです。 – gui12344455

+0

あなたはActive Recordの 'order'メソッドをテストしようとしています。 RSpecでは、私たちが作成したコードをテストする責任があります。ここで注文をテストする必要はありません。注文のテストケースを書く必要がある場合は、 'records = Model.only(:id、:name).order(:desc)'のようなクエリを作成し、 'expected(response_records) .to eq(レコード) ' –

答えて

1

2番目のargを使用してActiverecordを注文することができますか?

.order(value: :desc, id: :desc) 
関連する問題