Ho riscontrato un problema utilizzando un metodo di supporto personalizzato nella mia app Rails (3.0) per generare l'html richiesto.Rails Visualizza Helper non inserendo HTML nella pagina
Ho la seguente chiamata a mio avviso parziale: _label.html.erb
<% display_resource "Diamond", @resource.diamond %>
E nel file 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
L'output previsto è:
<tr>
<td>Diamond</td>
<td>15%</td>
<tr>
* concesso, senza la formattazione, e il 15 è arbitrario
Se utilizzo il metodo <% = ...%> quando si esegue la chiamata al metodo, verrà restituita correttamente la stringa, ma non sarà html % ")
Cosa sto facendo in modo errato?
motivo principale per cui non è la stampa è perché si utilizza '' <% %> invece di '' <%= %> – klew
Se avessi usato <%=...%>, emetterebbe la stringa, ma sarebbe la stringa effettiva (poiché questo è il comportamento predefinito dei binari ora - per prevenire XSS e altri tipi di falle che potrebbero sorgere) – MunkiPhD