Bonjour,

Il y a de forte chance que les named_scope ne fonctionne pas avec un finder_sql.
essaie :
has_many :matches, :class_name => 'Event, :conditions => ["tes conditions"]

Le 14 nov. 2009 à 17:40, arnaud icard a écrit :

> Bonjour,
> 
> suite à mon précédent message, on m'a conseillé d'utiliser la fonctionnalité 
> named_scope.
> Excellente idée! (merci guillaume)
> 
> Je développe actuellement une application pour la gestion de stats de 
> rencontres sportives. (je débute hein :) )
> 
> J'ai une table events :
>       t.date :date
>       t.integer :home_id         # clé étrangère de l'équipe qui reçoit
>       t.integer :away_id         # clé étrangère de l'équipe qui se déplace
>       t.integer :home_score_halftime
>       t.integer :away_score_halftime
>       t.integer :home_score_final
>       t.integer :away_score_final
> 
> Voila ce qu'on peut trouver dans le modèle 'Team':
>       has_many :matches_at_home, :class_name => 'Event', :foreign_key => 
> 'home_id'
>       has_many :matches_away, :class_name => 'Event', :foreign_key => 
> 'away_id'
>       has_many :matches, :class_name => 'Event', :finder_sql => 
>               'SELECT DISTINCT * '+
>               'FROM teams , events '+
>               'WHERE (events.home_id=#{id} AND teams.id=events.home_id) OR '+
>               '(events.away_id=#{id} AND teams.id=events.away_id)'
> 
> Dans le modèle 'Events':
>       belongs_to :home, :class_name => "Team"
>       belongs_to :away, :class_name => "Team"
>       
>       named_scope :not_yet_played, :conditions => "date > 
> '#{Time.now.strftime("%Y-%m-%d")}'"
>       named_scope :finished, :conditions => "date < 
> '#{Time.now.strftime("%Y-%m-%d")}'"
>       named_scope :won, :conditions => "home_score_final > away_score_final"
>       named_scope :lost, :conditions => "home_score_final < away_score_final" 
>  
>       named_scope :draw, :conditions => "home_score_final = away_score_final"
>       named_scope :not_won, :conditions => "home_score_final <= 
> away_score_final"
> 
> Et là, magie de ruby!
> Je peux utiliser le code suivant : 
>         Team.first.matches_at_home.won
>         Team.first.matches_away.not_yet_played
> 
> Ca commence à ressembler à du code qui me plait!
> 
> Par contre ce qui me pousse  à écrire c'est le fait que le code suivant me 
> renvoie une erreur : Team.first.matches.peu_importe_le_scope
> ===> each delegated to proxy_found.each, but proxy_found is nil: nil
> 
> Pourtant Team.first.matches me renvoie bien tous les matches de cette équipe 
> (joués et à venir)
> 
> Je sèche un peu là (en même temps avec ce qu'il pleut... hum hum)
> 
> Si quelqu'un peut m'aider à y voir plus clair dans ce brouillard... d'avance 
> merci!!
> 
> 
> Arnaud Icard
> 
> > 


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