Mhmm... L'objet retourné par un appel à find n'est pas vraiment un
Array. C'est un "Association Proxy". Et on peut faire des choses
intéressantes avec cet objet. Il y a un très bon article en anglais à
ce sujet :
http://www.pivotalblabs.com/articles/2007/08/08/advanced-proxy-usage-part-i
(un peu trop long pour que je le traduise ou que je le résume).

++

yk

Le 01/10/07, renaud morvan<[EMAIL PROTECTED]> a écrit :
>
>
> On 10/1/07, Pierre Valade <[EMAIL PROTECTED]> wrote:
> >
> > Mais si je déclare une méthode dans Class Product, elle ne
> > s'appliquera pas à un array d'objet Product non ?
>
> La méthode classique est l'idom @products.collect &:method ce qui est
> équivalent à @ products.collect {|p| p.method }
>
> Malheureusement (?) un resultset dans rails n'est qu'une instance de Array
> donc si tu veux lui rajouter des methodes il te faudra l'encapsuler dans un
> objetProxy ou pour ton cas simple surcharger la classe Array.
>
> IMHO pour ton exemple @resultset.map &:destroy, @resultset.collect &:id ou
> même @resultset.find_all &:spam? sont suffisamment DRY, sans compter que
> dans le vrai monde ce genre de chose devrait être fait coté SQL pour éviter
> l'overhead.
>
> Maintenant si tu veux rajouter des fonctionnalités complexe genre
> pagination, taxonomy, import massif ou conversion, alors les décisions
> d'architectures sont à prendre au cas par cas, to_csv a plus sa place comme
> method d'instance de Array que next_page...
>
> Renaud
>
>
>  >
>

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