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]