2016-07-15 11 views
-2

.uniq(アクティブレコードクエリメソッド)を使用する場合、どのようにしても結果は配列で整列されます。私はuniqを使用するときに注文を取り除く必要があります。Uniqメソッドのアクティブレコードの順序付け

私は.uniqメソッドを使用して注文を行う必要がありますが、これをどのように解決できますか?

.uniqなし:

[#<Coupon:0x0000001cadced0 
    id: 838882461, 
    name: "HOW_TO_CODE_50", 
    token_type: "manual", 
    value: 50, 
    quantity: 5, 
    available_until: Sat, 15 Jul 2017 18:01:24 UTC +00:00, 
    percentual: true, 
    school_id: 1, 
    created_at: Fri, 15 Jul 2016 18:01:25 UTC +00:00, 
    updated_at: Fri, 15 Jul 2016 18:01:25 UTC +00:00>, 
#<Coupon:0x0000001cadc408 
    id: 922059944, 
    name: "HOW_TO_CODE_70", 
    token_type: "manual", 
    value: 70, 
    quantity: 5, 
    available_until: Sat, 15 Jul 2017 18:01:24 UTC +00:00, 
    percentual: true, 
    school_id: 1, 
    created_at: Fri, 15 Jul 2016 18:01:25 UTC +00:00, 
    updated_at: Fri, 15 Jul 2016 18:01:25 UTC +00:00>, 
#<Coupon:0x0000001cae3bb8 
    id: 469697148, 
    name: "LEARN_RUBY_20", 
    token_type: "manual", 
    value: 20, 
    quantity: 10, 
    available_until: Sat, 15 Jul 2017 18:01:24 UTC +00:00, 
    percentual: true, 
    school_id: 1, 
    created_at: Fri, 15 Jul 2016 18:01:25 UTC +00:00, 
    updated_at: Fri, 15 Jul 2016 18:01:25 UTC +00:00>, 
#<Coupon:0x0000001cae3190 
    id: 68100775, 
    name: "HOW_TO_CODE_NOT_USED", 
    token_type: "manual", 
    value: 1000, 
    quantity: 5, 
    available_until: Sat, 15 Jul 2017 18:01:24 UTC +00:00, 
    percentual: false, 
    school_id: 1, 
    created_at: Fri, 15 Jul 2016 18:01:25 UTC +00:00, 
    updated_at: Fri, 15 Jul 2016 18:01:25 UTC +00:00>, 
#<Coupon:0x0000001cae2998 
    id: 214172726, 
    name: "LEARN_RUBY_30", 
    token_type: "manual", 
    value: 30, 
    quantity: 10, 
    available_until: Thu, 14 Jul 2016 18:01:24 UTC +00:00, 
    percentual: true, 
    school_id: 1, 
    created_at: Fri, 15 Jul 2016 18:01:25 UTC +00:00, 
    updated_at: Fri, 15 Jul 2016 18:01:25 UTC +00:00> 
    ] 

.uniqと:

[#<Coupon:0x0000001c786498 
    id: 68100775, 
    name: "HOW_TO_CODE_NOT_USED", 
    token_type: "manual", 
    value: 1000, 
    quantity: 5, 
    available_until: Sat, 15 Jul 2017 18:01:24 UTC +00:00, 
    percentual: false, 
    school_id: 1, 
    created_at: Fri, 15 Jul 2016 18:01:25 UTC +00:00, 
    updated_at: Fri, 15 Jul 2016 18:01:25 UTC +00:00>, 
#<Coupon:0x0000001c7859d0 
    id: 214172726, 
    name: "LEARN_RUBY_30", 
    token_type: "manual", 
    value: 30, 
    quantity: 10, 
    available_until: Thu, 14 Jul 2016 18:01:24 UTC +00:00, 
    percentual: true, 
    school_id: 1, 
    created_at: Fri, 15 Jul 2016 18:01:25 UTC +00:00, 
    updated_at: Fri, 15 Jul 2016 18:01:25 UTC +00:00>, 
#<Coupon:0x0000001c784fa8 
    id: 387313615, 
    name: "GLOBAL_DEMO", 
    token_type: "manual", 
    value: 75, 
    quantity: 5, 
    available_until: Sat, 15 Jul 2017 18:01:24 UTC +00:00, 
    percentual: true, 
    school_id: 1, 
    created_at: Fri, 15 Jul 2016 18:01:25 UTC +00:00, 
    updated_at: Fri, 15 Jul 2016 18:01:25 UTC +00:00>, 
#<Coupon:0x0000001c784800 
    id: 469697148, 
    name: "LEARN_RUBY_20", 
    token_type: "manual", 
    value: 20, 
    quantity: 10, 
    available_until: Sat, 15 Jul 2017 18:01:24 UTC +00:00, 
    percentual: true, 
    school_id: 1, 
    created_at: Fri, 15 Jul 2016 18:01:25 UTC +00:00, 
    updated_at: Fri, 15 Jul 2016 18:01:25 UTC +00:00>, 
#<Coupon:0x0000001c784008 
    id: 548707893, 
    name: "HOW_TO_CODE_FREE", 
    token_type: "manual", 
    value: 100, 
    quantity: 5, 
    available_until: Sat, 15 Jul 2017 18:01:24 UTC +00:00, 
    percentual: true, 
    school_id: 1, 
    created_at: Fri, 15 Jul 2016 18:01:25 UTC +00:00, 
    updated_at: Fri, 15 Jul 2016 18:01:25 UTC +00:00>, 
] 
+0

私はあなたの質問について少し不明です。あなたは配列uniqで配列の順序の要素をしたくないということですか?それをもっときれいにしてもらえますか? –

+0

うん、私はuniqを使用せずにuniqの順序を保つ必要があります。 –

+0

あなたの質問は何ですか? – Vishal

答えて

1

使用orderuniqと一緒に:

# assuming you want to sort by name 

Coupon.where(...).uniq.order(name: :desc) 

逆順に:descの代わりに:ascを使用してください。詳しくはActive Record Query Interfaceのドキュメントをご覧ください。

関連する問題