Rails, ou pourquoi faire compliqué quand on peut faire simple ?

Le 29 mars 2007 à 09h52 | Publié sous | 1 commentaire

Je découvre avec émerveillement l’attribut :include d’ActiveRecord::Base, qui efface de mon esprit des années de cauchemars SQL.

Jugez plutôt, quand une horreur pareille

self.find_by_sql([%{ SELECT categories.id, categories.name, categories.permalink, categories.position, COUNT(articles.id) AS article_counter FROM #{Category.table_name} categories LEFT OUTER JOIN #{Category.table_name_prefix}categorizations#{Category.table_name_suffix} articles_categories ON articles_categories.category_id = categories.id LEFT OUTER JOIN #{Article.table_name} articles ON (articles_categories.article_id = articles.id AND articles.published = ?) GROUP BY categories.id, categories.name, categories.position, categories.permalink ORDER BY position }, true]).each {|item| item.article_counter = item.article_counter.to_i }

devient tout simplement :

self.find( :all, :include => :articles, :conditions => [contents.published = ?, true], :order => position).each { |cat| cat.update_attributes(:article_counter => cat.articles.length) }

C’est beau, pour un peu j’en pleurerais.

Le long de la Seine

Commenter »

  1. Olivier G. 2 days later:

    On dirait du Jquery.

Laisser un commentaire

Merci de vous exprimer dans un français correct. Les commentaires déplacés, injurieux et le spam seront supprimés.

Les trackbacks sont fermés pour cause de spam.