Forum: Rails France Récupération de variable, question de débutant perdu

Posted by Ben Apnea_diving_deep (diving_deep)
on 2010-01-11 00:19
Bonjour,

Je suis un peu désolé de poser une telle question mais je tourne en
rond.
Après avoir cherché du côté des hash pour comprendre, je ne sais plus
par quel moyen récupérer une réponse qui devrait pourtant être simple.

Je suis en train de faire le tutorial:
http://guides.rubyonrails.org/getting_started.html

Je veux afficher ce que j'ai enregistré dans les tags d'un post, mais je
n'y parviens pas. J'ai lancé le debugger et ai tenté d'avoir accès aux
tags qui sont dans une simple ligne de texte: first, tag, ever, tag?

j'ai donc tapé en console les éléments suivants:
(rdb:12) @post.tags
[#<Tag id: 1, name: "first, tag, ever, tag?", post_id: 1, created_at:
"2010-01-10 21:57:56", updated_at: "2010-01-10 22:33:45">]
(rdb:12) @post.tags.name
"Tag"

Pourquoi est-ce que ma dernière réponse est 'Tag' et non pas 'first,
tag, ever, tag?' ?
Comment récupérer 'first, tag, ever, tag?'?

Merci d'avance
Posted by Cyril Mougel (shingara)
on 2010-01-11 09:26
(Received via mailing list)
Le 11/01/10 00:19, Ben Apnea_diving_deep a écrit :
> Je veux afficher ce que j'ai enregistré dans les tags d'un post, mais je
> Pourquoi est-ce que ma dernière réponse est 'Tag' et non pas 'first,
> tag, ever, tag?' ?
> Comment récupérer 'first, tag, ever, tag?'?

Comme tu peux le vois plus haut avec le [ ] @post.tags te renvoi un Hash
constitué de plusieurs Tag. Dans ton cas tu en as qu'un seul donc tu
pourrais juste faire

@post.tags.first.name

Sinon tu peux itérer dedans

@post.tags.each {|t| p t.name }

Apprend peut-être le ruby avant d'utiliser un framework basé sur ce 
langage.
Posted by Ben Apnea_diving_deep (diving_deep)
on 2010-01-11 10:13
Cyril Mougel wrote:
> Le 11/01/10 00:19, Ben Apnea_diving_deep a écrit :
>> Je veux afficher ce que j'ai enregistré dans les tags d'un post, mais je
>> Pourquoi est-ce que ma dernière réponse est 'Tag' et non pas 'first,
>> tag, ever, tag?' ?
>> Comment récupérer 'first, tag, ever, tag?'?
> 
> Comme tu peux le vois plus haut avec le [ ] @post.tags te renvoi un Hash
> constitué de plusieurs Tag. Dans ton cas tu en as qu'un seul donc tu
> pourrais juste faire
> 
> @post.tags.first.name
> 
> Sinon tu peux itérer dedans
> 
> @post.tags.each {|t| p t.name }
> 
> Apprend peut-être le ruby avant d'utiliser un framework basé sur ce 
> langage.


Merci beaucoup pour cette réponse simple et efficace.

J'ai fait plusieurs tuto et programmes en Ruby pour m'échauffer avant, 
manifestement pas assez :)
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.