J'ai eu deux trois mails "persos" pour m'expliquer qu'il suffisait de
faire artist.songs ou encore des find_all_by_artist_id, mais tout ceci
ne fonction que dans ActiveRecord, pas dans activeResource, donc si
qqn à une meilleure idée, je suis toujours à l'écoute.

On 20 juil, 15:27, jblanche <[EMAIL PROTECTED]> wrote:
> Je bosse en ce moment avec ActiveResource et celui ci me donne du fil
> à retordre.
> J'ai deux models coté "serveur"
>
> Songs: belong_to :artist et Artist: has_many :songs
>
> J'ai également deux méthodes de controller :
> une méthode songs dans ArtistsController qui me retourne un XML des
> songs de l'Artist
> et
> une méthode list_by_artist dans SongsController qui me retourne les
> songs d'un Artist
>
> Tout cela est RESTFUL
>   map.resources :artists, :member => {:songs => :get}
>   map.resources :songs, :collection => {:list_by_artist => :get}
>
> J'ai bien conscience que ces deux méthodes font la même chose mais :
>
> Je voudrais côté client (ActiveResource) récupérer la liste des songs
> d'un artist comme des objets Songs (pas des Array)
>
> Je peux écrire :
> Artist.find(1).get(:songs) pour récupérer un Array
> mais
> Artist.find(1).find(:songs) me renvoie une NoMethodError pour la
> méthode find
>
> Je peut aussi faire
>
> Song.get(:list_by_artist, :id => 1) # la aussi je récupère un
> Array...
> mais
> Song.find(:list_by_artist, :id => 1) me renvoi :
>
> ArgumentError: expected an attributes Hash, got []
>         from /var/lib/gems/1.8/gems/activeresource-2.1.0/lib/
> active_resource/base.rb:883:in `load'
>         from /var/lib/gems/1.8/gems/activeresource-2.1.0/lib/
> active_resource/base.rb:639:in `initialize'
>         from /var/lib/gems/1.8/gems/activeresource-2.1.0/lib/active_resource/
> base.rb:587:in `new'
>         from /var/lib/gems/1.8/gems/activeresource-2.1.0/lib/active_resource/
> base.rb:587:in `instantiate_record'
>         ...
>
> Rails semble tenter instantier un "record" (instantiate_record) là où
> il devrait le faire pour une collection (instantiate_collection)
>
> Il y a t-il une solution à ce problème ?
> Est ce que je m'y prend mal ou est ce que ca vient de Rails ?
>
> J'ai déjà codé un petit patch pour avoir le comportement attendu dans
> le cas "Song.find(:list_by_artist, :id => 1)" mais j'aimerais d'abord
> être sur que le problème vient bien de Rails et pas de moi avant de
> soumettre ce pseudo bug.
--~--~---------~--~----~------------~-------~--~----~
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 à