Nicolas Blanco wrote:
> Yo.
> 
> Tu as une relation belongs_to :type dans ton objet d�pense, cela veut
> dire que la relation est sur depense.type et non pas depense.types. Si
> une d�pense a un seul type, c'est du belongs_to et la relation est au
> singulier, sinon c'est du has_many ou has_and_belongs_to_many avec une
> table de relation interm�diaire, et l� effectivement le nom de la
> relation est au pluriel !
> 
> Si dans ta vue tu veux afficher le nom du type de ta d�pense et tu
> n'es pas sur que celui ci est d�fini a chaque fois (il est peut �tre
> nil sur certains enregistrements), tu peux t'amuser � tester que
> depense � un type avec un bloc if ou encore faire des choses plus
> rapides du style :
> <%= depense.type.try(:name) || "N.C." %> (qui affichera N.C. si
> depense n'a pas de type) ou encore mieux utiliser la m�thode delegate
> dans ton mod�le (regarde la doc de Rails) et dans ce cas �crire dans
> ta vue <%= depense.type_name || "N.C." %>.
> 
> De plus, �coute nous et renomme rapidement ta relation/mod�le en autre
> chose que Type/type ! Tout le monde te dit que type est un mot cl� 
r�serv� dans Rails, donc si t'as pas de probl�me maintenant t'en auras
> forc�ment plus tard et tu risques de te mordre les doigts apr�s des
> heures � rechercher pourquoi.
> 
> Nicolas.
> 
> 2010/3/16 Denis Helix <[email protected]>:

la relation est bien delongs_to, une depense à 0 ou 1 type associé

j'avais résolu le problème du nil en testant dans le controleur la 
valeur

    if @depense.type == nil
      @type_render = " "
    else
      @type_render = @depense.type.name
    end

 <%= depense.type.try(:name) || "N.C." %> marche nickel, c'est plus 
propre que de définir une variable.
Je vais regarder aussi la la methode delegate

Entre temps j'ai recreé la table types => genders et en même temps le 
champs name en designation, parce que name pausse aussi des problèmes.

Merci de vos réponses.
-- 
Posted via http://www.ruby-forum.com/.

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