Tengo un problema al utilizar un método de ayuda personalizado en mi aplicación Rails (3.0) para generar el html requerido.Rails View Helper No insertar HTML en la página
tengo la siguiente llamada en mi vista parcial: _label.html.erb
<% display_resource "Diamond", @resource.diamond %>
Y en el archivo resource_helper.rb:
module ResourceHelper
def display_resource(display_name, value)
"<tr><td>#{display_name} </td><td>#{value.to_s}%</td></tr>" if value > 0
end
end
El resultado previsto es:
<tr>
<td>Diamond</td>
<td>15%</td>
<tr>
* concedido, sin el formato, y el 15 es arbitrario
Si utilizo el <% = ...%> al realizar la llamada al método, se mostrará la cadena correctamente, pero no será html (es decir, veré "<tr><td>Diamond </td><td>15%</td></tr>"
en lugar de "Diamante 15" % ")
¿Qué estoy haciendo incorrectamente?
La razón principal por la que no es la impresión se debe a que utiliza '' <% %> en lugar de '' <%= %> – klew
Si usaba <%=...%>, saldría la cadena, pero sería la cadena real (ya que ese es el comportamiento predeterminado de los rieles ahora, para evitar XSS y otros tipos de agujeros de seguridad que puedan surgir) – MunkiPhD