Ich weiß, dass ich dies in Rails tun können:Schreiben in die Antwort in Rails? (Like "echo" in PHP)
<%="hello" %>
aber gibt es eine Möglichkeit, diese
<%
echo "hello"
%>
zu tun und bekommen es in das zu zeigen, Antwort?
Ich weiß, dass ich dies in Rails tun können:Schreiben in die Antwort in Rails? (Like "echo" in PHP)
<%="hello" %>
aber gibt es eine Möglichkeit, diese
<%
echo "hello"
%>
zu tun und bekommen es in das zu zeigen, Antwort?
Haben Sie versucht concat
.
Ich habe dies in Rails Dokumentation beim Wandern gesehen. Ich bin gar nicht sicher, seit ich Rails sehr neu bin.
Schöner Schuss! http://api.rubyonrails.com/classes/ActionView/Helpers/TextHelper.html –
Sie suchen nach "print" oder "puts", je nachdem, ob Sie einen Zeilenumbruch wünschen (wahrscheinlich nicht). Fast jedes Objekt implementiert .to_s, was auch funktioniert, obwohl ich das Gefühl habe, dass es wahrscheinlich einen besseren Weg gibt zu tun, was auch immer Sie versuchen zu tun. Noch mehr Kontext dazu?
Danke, nein, ich möchte es auf dem Client sehen, nicht auf der Konsole. –
Es gibt keinen Grund, warum es auf der Konsole nicht funktionieren würde. <% = puts "Beliebiger Ruby-Code geht hierhin"%> – phresus
-1, setzt puts (oder p) standardmäßig auf STDOUT, was NICHT bedeutet, wo die Antwort generiert wird. Und <% = puts ...%> erzeugt eine leere Zeichenfolge in der Antwort, puts (oder p) gibt nil und nil.to_s == "" zurück. – Samuel
Was Sie schreiben müssen, ist
<% concat "bank" %>
jetzt Sie so etwas wie
<%
10.times do
concat "cat"
end
%>
für zehn Katze
Genau. In diesem Zusammenhang ist es sinnvoll concat anstelle von <% = zu verwenden. Danke für deine Antwort. –
Ich denke explizite Bindung wird nicht mehr benötigt ... –
Ja, ich hatte keine Ahnung, was diese Bindung war, ich selbst. –
Verwendung concat
tun kann, ich habe es ausprobiert und es funktioniert. Allerdings, wenn Sie HTML-Zeichen verwenden müssen, verwenden:
concat(sanitize("STRING"))
oder Ihre app/helpers/application_helper.rb
öffnen und schreiben:
def echo(str)
concat sanitize str
end
so können Sie einfach eingeben: echo "hello<br />\n"
Was passiert, wenn Sie nicht sterilisieren –
einfaches Genie :) – intepid
Ja. Das Objekt existiert aber die Methode nicht :) undefinierte Methode 'write 'für # –
CgiResponse? Verwenden Sie ActionController :: CgiResponse.out – phresus
Was ist los mit <%="hello" %>? –