2010-12-03 5 views
0

Voici le code RubyComment afficher correctement cette balise span dans ruby?

content_tag(:li, render_menu_node(node, content_tag(:span, caption), url, selected)) 

affiche la balise span comme ceci:

<li><a href="" class="selected">&lt;span&gt;Foo&lt;/span&gt;</a></li> 

Comment puis-je faire afficher comme ça?

<li><a href="" class="selected"><span>Foo</span></a></li> 
+0

Vous pouvez essayer d'encapsuler l'appel à content_tag (: span, légende) avec h (content_tag (: span, légende)). –

+0

Je l'ai essayé, mais ça fait toujours la même chose. Il ajoute & comme ceci:

  • &lt;span&gt;Foo&lt;/span&gt;
  • amye

    +0

    Que fait «render_menu_node»? –

    Répondre

    2

    Si cela est Rails 3, puis utilisez soit

    content_tag(:li, raw(render_menu_node(node, content_tag(:span, caption), url, selected))) 
    

    ou

    content_tag(:li, render_menu_node(node, content_tag(:span, caption), url, selected).html_safe) 
    

    ou même modifier mieux render_menu_node revenir chaîne html_safe. Soyez sûr de h toutes les entrées de l'utilisateur à l'intérieur de cette méthode cependant.

    Vous devrez peut-être utiliser l'une de ces techniques dans votre méthode. Assurez-vous également que vous êtes et non en enveloppant ce que vous obtenez de content_tag(:span, caption) dans un appel de méthode h. Postez votre code pour plus de détails.

    S'il ne s'agit pas de Rails 3, vous devez publier la source de cette méthode.

    Questions connexes