2010-09-29 22 views
1

Comment ferais-je ce qui suit.RoR 3 - f.label incorpore une étiquette <span> - howto

Mon code actuel est:

<%= f.label :email, html_escape("<span class=\"big\">Test</span>") %> 

Cela ne montre ce que je veux, parce que le

<span class=\"big\">Test</span> 

est présenté sous forme de texte au lieu de HTML.

Je pensais à remplacer le FormBuilder, mais je ne sais pas comment je le ferais et la recherche de quelque chose de similaire n'a pas résolu mes problèmes.

Aussi, au lieu de Test, je veux afficher le variabel: email.

Je veux juste résoudre le problème que j'ai :)

PS. J'utilise Rails 3.0.

Répondre

5

Tous les assistants dans les rails 3 sont html_escape, donc ce n'est plus nécessaire. N'utilisez pas html_escape et cela fonctionne très bien. Vous devez utiliser brut

<%= f.label :email, raw("<span class=\"big\">Test</span>") %> 

Ou vous pouvez marquer cette chaîne comme sûre

<%= f.label :email, "<span class=\"big\">Test</span>".html_safe %> 
+0

Vous avez résolu mon problème, merci :) – NicoJuicy

0

Vous êtes html_escape 'trav the span ... c'est pourquoi le span html apparait sur votre page. Si vous vous débarrassez de ça, ça va juste afficher en html, ce que vous voulez.

+0

A l'origine je n'ai pas utilisé le html_escape, standard, il a été rendu sous forme de texte. J'avais besoin de l'une des 2 méthodes ci-dessus (raw ou .html_safe) – NicoJuicy

+0

par défaut les rails échappent au html dans votre code, donc si vous n'avez pas utilisé html_escape ça ne veut pas dire que les rails ne le feront pas pour vous. @Dave Pirotte l'a bien dit, vous étiez en train d'échapper au HTML sans le savoir. – rmagnum2002