He intentado todo. Cada combinación de los ayudantes raw
, html_safe
to_json
incluyendo algunos intentos con ::JSON.encode
y CGI.unescape
. El problema es que, independientemente de lo que haga, no puedo imprimir JSON bien formado en una vista. Siempre es HTML escapado.Imprimir JSON válido y no escapado en una vista con Rails
Aquí está el código en mi opinión:
var campaignData<%= "=" + (raw @campaign.to_json) if @campaign %>;
En mi caso, siempre las citas que se evitan como ". Simplemente haría un gsub en las citas, pero esa es una solución terrible para lo que IMO debería ser un caso de uso muy simple y bien documentado.
Esto no es seguro. ¿Qué pasa si el json contiene una cuerda con un menor que? Si coloca esto en una etiqueta de script, alguien puede inyectar una etiqueta de script de cierre e iniciar una nueva con código arbitrario. Necesita envolver la cadena json en 'json_escape'. Sin embargo, esa función se ha roto hasta hace poco (rieles 4.1). – Kelvin
Sí, también encontré que esto no funcionó cuando @campaign == "" – hrdwdmrbl
GRACIAS A TON !!! –