SORU
5 Kasım 2009, PERŞEMBE


ActiveRecord.bul(array_of_ids), koruma amacıyla

Raylar Something.find(array_of_ids) Ne zaman, sonuçta elde edilen dizinin sipariş array_of_ids sırasına bağlı değildir.

Yapmak için herhangi bir yol bulmak ve düzeni korumak var mı?

ATM kayıtları el ile Kimlikleri sırasına göre sıralama, ama bu biraz sakat.

UDP: mümkünse sipariş :order param kullanarak ve SQL tümcesi bir tür belirtmek için, o zaman nasıl?

CEVAP
22 Mart 2013, Cuma


Ne tuhaftır ki, kimse böyle bir şey önerdi

index = Something.find(array_of_ids).group_by(&:id)
array_of_ids.map { |i| index[i].first }

İzin dışında olabildiğince verimli SQL arka uç.

Düzenleme:Kendi cevabımı geliştirmek için de bu böyle

Something.find(array_of_ids).index_by(&:id).slice(*array_of_ids).values

#index_by #slice oldukça kullanışlı diziler ve karma ActiveSupport eklemeler sırasıyla.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Flash CS6 Video Tutorials for Beginners (Actionscript 3 Gaming)

    Flash CS6 Vi

    14 EYLÜL 2012
  • Snazzy Labs

    Snazzy Labs

    9 Aralık 2008
  • theavettbrothers

    theavettbrot

    9 ŞUBAT 2007