@Yann : merci pour votre article.

J'ai trouvé ça, très pratique :

has_many :assets do
  def to_s
    self.join(',')
  end
end

Merci.

On 1 oct, 10:03, "Yann KLIS" <[EMAIL PROTECTED]> wrote:
> 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-...
> (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 à