C'est du ActiveRecord::Base de base donc ça n'est pas un plugin manquant.
Par contre tu utilise peut-être une ancienne version de Rails (comme tu ne
l'a pas précisé, j'ai supposé que tu étais sur la plus récente) ou que j'ai
fait une erreur de syntaxe quelque part (genre oublier les : au début du
symbole :for_matin_aprem et :for_date_saisie par exemple), dans tous les cas
la stack trace devrait t'aider à la source du problème.

Michel Belleville


2009/12/4 pestak <[email protected]>

>
> Merci Michel
>
> Cette méthode a l'air sympa.
> J'ai juste rajouter dans le contrôleur "Saisie" la ligne
> "for_date_saisie". Mais maintenant plus rien ne fonctionne, j'ai :
> Status: 500 Internal Server Error Content-Type: text/html
> 500 Internal Server Error
>
> Je suis désolée, je débute et pareil il faut installer une gem pour
> que ça fonctionne ou autres mais je ne sais pas.
> Merci de votre aide.
>
> On 4 déc, 11:18, Michel Belleville <[email protected]>
> wrote:
> > Nota bene : count marche extrêmement bien avec des named_scopes. Exemples
> :
> >
> > En admettant que tu fasse tes modèles Saisie et Personne comme ça :
> >
> > class Personne < AR::B
> > ...
> > has_many :saisies
> > ...
> > end
> >
> > class Saisie < AR::B
> > ...
> > belongs_to :personne
> > named_scope for_date_saisie, lambda { |date| { :conditions => {
> :date_saisie
> > => date } } }
> > named_scope for_matin_aprem, :conditions => { :matin_aprem => true }
> > ...
> > end
> >
> > Ca va faire précisément le count que tu veux en une seule requête :
> >
> > personne.saisies.for_date_saisie(date).for_matin_aprem.count
> >
> > Magik
> >
> > Michel Belleville
> >
> > 2009/12/4 Cyril Mougel <[email protected]>
> >
> >
> >
> > > pestak a écrit :
> > > > Bonjour,
> >
> > > > Lorsque j'essaye de compter le nombre d'enregistrement de ma table
> > > > saisies suivant une date et une personne j'obtiens l'erreur "too few
> > > > arguments".
> > > > Comment dois-je procéder?
> > > > Merci d'avance
> >
> > > > # recherche si la saisie n'existe déjà pas pour la journée
> > > > saisie_rech_matin = Saisie.count_by_sql(["SELECT count(*) FROM
> saisies
> > > > WHERE date_saisie=? and matin_aprem=1 and
> > > > personne_id=?",@saisie_matin.date_saisie,@saisie_matin.personne_id])
> > > > saisie_rech_aprem = Saisie.count_by_sql(["SELECT count(*) FROM
> saisies
> > > > WHERE date_saisie=? and matin_aprem=2 and
> > > > personne_id=?",@saisie_aprem.date_saisie,@saisie_aprem.personne_id])
> >
> > > > #saisie_rech_matin = Saisie.count( :conditions =>["date_saisie=? and
> > > > matin_aprem=1 and
> > > > personne_id=?",@saisie_matin.date_saisie,@saisie_matin.personne_id] )
> > > > #saisie_rech_aprem = Saisie.count( :conditions =>["date_saisie=? and
> > > > matin_aprem=1 and
> > > > personne_id=?",@saisie_aprem.date_saisie,@saisie_aprem.personne_id] )
> >
> > > > #si pas de saisie pour la date et la personne
> > > > if saisie_rech_matin==0 and saisie_rech_aprem==0
> > > >    ....
> >
> > > Aucun interet de faire du SQL dans tes requêtes. Passe par un bon vieux
> > > AR#count
> >
> > > --
> > > Cyril Mougel
> > >http://blog.shingara.fr/
> >
>

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