Ich habe ein Problem mit einer benutzerdefinierten Hilfsmethode in meiner Rails (3.0) -App, um das erforderliche HTML auszugeben.Rails View Helper HTML nicht einfügen in Seite
Ich habe folgenden Anruf in meiner Teilansicht: _label.html.erb
<% display_resource "Diamond", @resource.diamond %>
Und in der resource_helper.rb Datei:
module ResourceHelper
def display_resource(display_name, value)
"<tr><td>#{display_name} </td><td>#{value.to_s}%</td></tr>" if value > 0
end
end
Die beabsichtigte Ausgabe lautet:
<tr>
<td>Diamond</td>
<td>15%</td>
<tr>
* gewährt, ohne die Formatierung, und die 15 ist beliebig
Wenn ich die <% = ...%> beim Methodenaufruf verwende, wird die Zeichenfolge korrekt ausgegeben, aber es wird kein HTML sein (dh ich sehe "<tr><td>Diamond </td><td>15%</td></tr>"
im Gegensatz zu "Diamond 15 % ")
Was mache ich falsch?
Hauptgrund, warum es nicht druckt, weil Sie '' <% %> statt '' <%= %> – klew
Wenn ich <%=...%> würde es die Zeichenfolge ausgeben, aber es wäre die tatsächliche Zeichenfolge (wie das ist das Standardverhalten von Schienen jetzt - zu verhindern XSS und andere Art von Sicherheitslücken, die auftreten könnten) – MunkiPhD