118 votes

Dans Rails - y a-t-il une méthode de rails pour convertir les sauts de ligne à<br>?

Est-il possible de convertir \n Railsy `` ?

Actuellement, je fais comme ceci :

269voto

Daniel Von Fange Points 2739

Oui, rails a `` qui fait exactement ce que vous cherchez et un peu mieux puisqu’il ajoute également des balises de paragraphe. Voir

http://API.RubyOnRails.org/classes/ActionView/helpers/TextHelper.html#Method-i-simple_format

Exemple :

47voto

Tomalak Points 150423

Vous pouvez faire plus générales par la pratique :

De cette façon vous couvrirait DOS, * NIX, Mac et les fins de ligne non valide accidentelle.

31voto

HansWürstchen Points 323

Vous devez être prudent lorsque vous traitez avec des entrées de l'utilisateur.
simple_format inserts <br> de balises, mais il permettra à d'autres balises html!

Lors de l'utilisation de simple_format, <b>Hello</b> sera rendu comme "Bonjour", vous ne pourriez pas vouloir cela.

Au lieu de cela, vous pouvez utiliser <%= h(c.text).gsub("\n", "<br>").html_safe %>
h() code le html, gsub remplace le saut de ligne et html_safe permet <br> tags à afficher.

Cela permet d'afficher exactement ce que l'utilisateur a entré. Il permet également de discuter de html par exemple dans les commentaires.

1voto

Jim Puls Points 29289

Vous pourriez aussi envisager ce que vous essayez de le faire - si vous êtes bien en forme de texte que les gens sont entrés, vous pourriez envisager un filtre comme Markdown laisser votre format d’utilisateurs leur texte sans ouvrir la boîte de Pandore qui est HTML. Vous savez, comme si c’était ici au débordement de pile.

0voto

ryeguy Points 24980

Nope. Ce que vous avez là est la solution de rechange couramment utilisée. La définition que la plupart des gens utilisent est :

Il est nommé ainsi parce qu’il reproduit la fonctionnalité de la fonction PHP du même nom.

Prograide.com

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.

Powered by:

X