¿Qué hace < % = = % > en rails erb?


Vi esto recientemente, pensé que era interesante. Pero realmente no entiendo lo que hace?

Ex. Tengo una aplicación rails y quiero arrancar algo de json, para no tener que hacer una segunda solicitud. Normalmente escribiría algo como esto.

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

Tengo que enviar el mensaje raw o html_safe o el json será html escapado y por lo tanto no analizado correctamente. Sin embargo, esto parece funcionar también.

<%== @model.to_json %>

Pero no puedo encontrar ninguna documentación.

¿Alguien sabe exactamente lo que esto hace? es decir, ¿es exactamente lo mismo que llamar html_safe o raw? O hay algo más?

Author: mwoods79, 2012-10-30

2 answers

<%== es equivalente a raw.

De la Guía de Ruby on Rails :

Para insertar algo textualmente use el ayudante raw en lugar de llamar html_safe:

<%= raw @cms.current_template %> <%# inserts @cms.current_template as is %>

O, equivalentemente, use <%==:

<%== @cms.current_template %> <%# inserts @cms.current_template as is %>
 51
Author: Stefan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-10-30 15:49:04

Rails en realidad usa Erubis en lugar de ERB, que soporta una variedad de otras cosas.

<%== es exactamente como usted espera, sin embargo: Emite el valor unescaped

 11
Author: Nevir,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-10-30 15:40:39