2009-09-17 4 views
1

La déclaration suivante ...Faire un X en retour de la boucle Y tout ce qui est renvoyée par les déclarations qu'il contient

content_tag(:li, concept.title) 

... retourne quelque chose comme:

<li>"My big idea"</li> 

La définition de méthode suivante , lorsqu'il est appelé, retourne le même:

def list_of_concepts(part) 
content_tag(:li, concept.title) 
end 

Comme le fait ...

def list_of_concepts(part) 
content_tag(:li, part.concepts.first.title) 
end 

Mais ce qui suit ...

def list_of_concepts(part) 
    for concept in part.concepts 
    content_tag(:li, concept.title) 
    end 
end 

... me donne juste un tas de signes dièse (« # ») à mon avis, comme il est de retour vrai ou faux ou un compte plutôt que tout content_tag renvoie. Comment puis-je le faire retourner ce que content_tag retourne?

Merci encore,

Steven.

Répondre

7

la boucle ne retourne pas vos données, essayez ceci:

def list_of_concepts(part) 
    part.concepts.map { |c| content_tag(:li, c.title) }.join 
end 
+0

un charme travaillé. À votre santé. :-) –

Questions connexes