Supposons que j’ai la chaîne suivante
À mon avis, je veux un lien à afficher. Autrement dit, je ne veux pas tout dans @x sans séquence d’échappement et affichées sous forme de chaîne. Quelle est la différence entre l’utilisation
?
Supposons que j’ai la chaîne suivante
À mon avis, je veux un lien à afficher. Autrement dit, je ne veux pas tout dans @x sans séquence d’échappement et affichées sous forme de chaîne. Quelle est la différence entre l’utilisation
?
Compte Tenu De Rails 3:
html_safe
, en fait, "définit la chaîne de caractères" comme HTML Coffre-fort (c'est un peu plus compliqué que ça, mais en gros, c'est elle). De cette façon, vous pouvez renvoyer le code HTML Sûr les chaînes à partir des aides ou des modèles à volonté.
h
ne peut être utilisée à partir d'un contrôleur ou d'une vue, puisque c'est à partir d'un helper. Il va forcer la sortie d'échappement. Ce n'est pas vraiment obsolète, mais vous avez très probablement ne plus l'utiliser: le seul usage est de "revenir" html_safe
déclaration, assez inhabituel.
Ajoutant votre expression avec raw
est en fait équivalent à l'appel de to_s
chaîne avec des html_safe
, mais est déclaré sur un helper, tout comme h
, de sorte qu'il peut être utilisé uniquement sur les contrôleurs et les vues.
"SafeBuffers et de Rails 3.0" est une belle explication sur la façon dont l' SafeBuffer
s (la classe qui ne l' html_safe
de la magie).
Je pense qu’il faut le répéter : `` fait pas HTML-évasion votre chaîne. En fait, il empêchera votre chaîne à s’en échapper.
vais mettre :
dans votre code source HTML (Youpi, si sûr !), tout en :
sautera vers le haut de la boîte de dialogue alert (vous êtes sûr que c’est ce que vous voulez ?). Si vous ne voulez probablement pas à appeler `` sur toutes les chaînes entrées par l’utilisateur.
La différence est entre les Rails' html_safe()
et raw()
. Il y a un excellent post de Yehuda Katz sur ce point, et il se résume à ceci:
def raw(stringish)
stringish.to_s.html_safe
end
Oui, raw()
est un wrapper autour de html_safe()
que les forces de l'entrée à la Chaîne, puis des appels html_safe()
. C'est aussi le cas, raw()
est un assistant dans un module alors que html_safe()
est une méthode de la classe String qui en fait une nouvelle ActiveSupport::SafeBuffer à l'instance qui a un @dirty
drapeau.
Reportez-vous à "Rails " de html_safe vs raw".
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.