49 votes

Que fait <%== %> dans rails erb?

J'ai vu cela récemment, j'ai pensé que c'était intéressant. Mais je ne comprends pas vraiment ce que cela fait?

Par exemple, j'ai une application Rails et je veux initialiser quelques données JSON, afin de ne pas avoir à faire une deuxième demande. Normalement, j'écrirais quelque chose comme ceci.

<%= raw @model.to_json %> ou <%= @model.to_json.html_safe %>

Je dois envoyer le message raw ou html_safe sinon le json sera html échappé et donc pas parsé correctement. Cependant, cela semble fonctionner aussi.

<%== @model.to_json %>

Mais je ne trouve aucune documentation.

Est-ce que quelqu'un sait exactement ce que cela fait? Est-ce exactement la même chose que d'appeler html_safe ou raw? ou y a-t-il plus que cela?

57voto

Stefan Points 23363

<%== est équivalent à raw.

De la Guide Ruby on Rails:

Pour insérer quelque chose de façon véritable, utilisez l'assistant raw plutôt que d'appeler html_safe:

<%= raw @cms.current_template %> <%# insère @cms.current_template tel quel %>

ou, de manière équivalente, utilisez <%==:

<%== @cms.current_template %> <%# insère @cms.current_template tel quel %>

11voto

Nevir Points 3121

Rails utilise en fait Erubis au lieu de ERB, qui prend en charge une variété d'autres choses.

<%== est exactement comme vous vous y attendez, cependant : Il émet la valeur non échappée

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