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]
-~----------~----~----~----~------~----~------~--~---

Répondre à