2010-12-10 6 views
0

Ich kann dem Redmine-Projektmenü keinen span-Tag hinzufügen. Sie können den vollständigen Code im redmine-Repository unter trunk/lib/redmine/menu_manager.rb in der Zeile 182 sehen. Dies ist die Zeile, in der ich versuche, ein span-Tag hinzuzufügen.Hinzufügen eines span-Tags zu diesem Menü in Rails?

return content_tag('li', render_single_menu_node(node, caption, url, selected)) 

Ich versuchte, einen span-Tag wie folgt ergänzt:

return content_tag('li', render_single_menu_node(node, content_tag(:span, caption), url, selected)) 

aber es macht den span-Tag als Text im Browser wie folgt aus:

<Spannweite> Übersicht </span >

Das 'li' macht es gut. Gibt es eine Möglichkeit, das span-Tag korrekt hinzuzufügen?

Antwort

0

sehen, ob das hilft:

span_tag = content_tag(:span, caption).html_safe 
return content_tag('li', render_single_menu_node(node, span_tag, url, selected)) 

standardmäßig content_tag wird jeden HTML-Inhalt entkommen. Sie können html_safe verwenden, um zu verhindern, dass eine Zeichenfolge maskiert wird.

Auf Schienen 2.3.x gibt es keine html_safe Methode, aber Sie können eine Option passieren content_tag es zu sagen, seinen Inhalt nicht zu entkommen:

span_tag = content_tag(:span, caption, {}, false) 
return content_tag('li', 
        render_single_menu_node(node, span_tag, url, selected), 
        {}, 
        false) 
+0

Ich habe gerade versucht, aber jetzt bin ich immer Dieser Fehler: "undefinierte Methode' html_safe 'für " Anmelden": String ". Ich weiß nicht, ob das wichtig ist, aber ich verwende Schienen 2.3.5. – amye

+0

Es sieht nicht so aus, als ob html_safe in Rails 2.3.5 unterstützt wird. Und Redmine unterstützt nur Version 2.3.5. Gibt es eine Alternative zu html_safe oder eine andere Arbeit? – amye

+0

Siehe aktualisierte Antwort für Informationen auf Schienen 2.3.x. (N.B. Ich habe letzte Nacht einen Kommentar mit dieser Information hinzugefügt, aber irgendwie ist er verschwunden!) – bowsersenior

Verwandte Themen