Merci pour vos contributions, effectivement l'utilisation de named_scope semble être une bonne solution.
On 4 sep, 21:03, Nicolas Blanco <[email protected]> wrote: > 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] -~----------~----~----~----~------~----~------~--~---
