Faire une boucle for X in Y retourner ce qui est retourné par les instructions qu'elle contient
Question
La déclaration suivante ...
content_tag(:li, concept.title)
... renvoie quelque chose comme:
<li>"My big idea"</li>
La définition de méthode suivante, lorsqu'elle est appelée, renvoie le même résultat:
def list_of_concepts(part)
content_tag(:li, concept.title)
end
Comme c'est le cas ...
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 simplement un tas de signes dièse (" #
") à mon avis, comme si elle renvoyait la valeur true ou false ou un compte, plutôt que ce que content_tag
retourne. Comment puis-je lui faire renvoyer ce que content_tag
renvoie?
Merci encore,
Steven.
La solution
la boucle for ne renvoie pas vos données, essayez ceci:
def list_of_concepts(part)
part.concepts.map { |c| content_tag(:li, c.title) }.join
end
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow