Un jour, une gem

18/04/2012

Mercredi c'est ranked-model

gem install ranked-model

Modern row sorting library built for Rails 3

Aujourd’hui une gem pour ordonner vos entités en base plus simplement. Par exemple, vous avez une colonne “row_order” dans votre model et souhaitez utiliser cette colonne pour ordonner les entités. Alors vous devrez faire quelque chose dans ce goût-là :

class Duck < ActiveRecord::Base

  include RankedModel
  ranks :row_order

end

Ensuite vous pouvez récupérer le tout, ordonné comme ceci :

Duck.rank(:row_order).all

L’avantage, c’est que si vous mettez à jour le rang d’un canard, et bien seul ce canard sera mis à jour. Cela marche comme ça parce que ranked-model assigne aux entités de grands nombres pour le classement ; ce qui permet de déplacer plus facilement une entité entre deux nombres ou avant ou après.

Il est aussi possible de faire du classement en utilisant des associations.

Les liens utiles