class Article < ActiveRecord::Base named_scope :longest, :conditions => "length(size) > 1000" end
ma_category.articles.longest Paf ! Nicolas. Le 4 septembre 2009 20:30, Michel Belleville <[email protected]> a écrit : > Un truc aussi basique ce serait beaucoup mieux de le faire faire à la base > de données, rapport aux performances ; un where pourrait sans doute suffire, > ça dépend si tu veux être complètement sql agnostique. > > Michel Belleville > > > 2009/9/4 Alexis Bernard <[email protected]> > > Ça prend 1 ligne avec la méthode inject :-) >> >> cat.articles.inject([]) { |articles, article| article.text.size > 1000 ? >> articles << article : articles } >> >> Par contre pour ce besoin spécifique je regarderai du côté du SGBDR s'il >> ne peut pas filtrer avec un where la longueur des articles. Un named scope >> simple et écrire et plus de perfs :-) >> >> Le 4 septembre 2009 19:47, Antoine CRESSON <[email protected]> a >> écrit : >> >> >>> Par exemple on a une catégorie avec un certains nombre d'articles >>> j'aimerais pouvoir trouver tous les articles dont la longueur dépasse >>> 1000 caractères (le traitement se fera en ruby pour trouver les >>> articles correspondants) j'aimerais pouvoir avoir accès à ces articles >>> de la manière suivante : >>> >>> cat = Category.first >>> cat.articles.more_than_1000_chars >>> >>> On 4 sep, 19:38, Alexis Bernard <[email protected]> wrote: >>> > Salut, >>> > >>> > Donne nous un exemple précis. Sinon toutes les méthodes d'Enumerable >>> > devraient convenir à la plupart des besoins. >>> > >>> > Le 4 septembre 2009 16:42, Antoine CRESSON <[email protected]> >>> a >>> > écrit : >>> > >>> > >>> > >>> > >>> > >>> > > Bonjour, >>> > >>> > > Soit le modèle suivant : >>> > >>> > > class FirstModel < ActiveRecord::Base >>> > > belongs_to :second_model >>> > > end >>> > >>> > > class SecondModel < ActiveRecord::Base >>> > > has_many :first_models >>> > > end >>> > >>> > > m = SecondModel.first >>> > >>> > > j'aimerais ajouter des méthodes spécifiques pour manipuler (effectuer >>> > > des traitement en ruby) la collection (Array) m.first_models. >>> > >>> > > Ma première solution a été d'ajouter des méthodes à la classe Array >>> > > mais le soucis c'est que pour chaque tableau ces méthodes sont >>> > > disponibles. >>> > >>> > > J'ai vu qu'on pouvait peut être utiliser le pattern Proxy mais je ne >>> > > vois vraiment pas comment faire. >>> > >>> > > Si quelqu'un peut m'aider. >>> > >>> > > Merci >>> >>> >> >> >> > > > > --~--~---------~--~----~------------~-------~--~----~ Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de Google Groups. Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse [email protected] Pour résilier votre abonnement envoyez un e-mail à l'adresse [email protected] -~----------~----~----~----~------~----~------~--~---
