2016-08-09 117 views
0

Ich bin über eine Hashmap des Typs iterieren. Funktioniert ziemlich gut. Mein Problem ist, es druckt die gesamte Hashmap als String nach der gewünschten Ausgabe aus.ganze RUBY hashmap ausgedruckt nach ".each" Schleife

Screenshot

Was ist passiert? Wie kann ich verhindern, dass meine App das tut?

Edit: sorry für albern .. total vergessen, dass!

source-code:

<div style="display: inline-block"> 
    <%= @tag_color_hash.each do |tag, color| %> 
     <%= f.label tag, :style => "border-color: #{color}", :class => 'tags'%> 
    <% end %> 
</div> 
+0

Können Sie Quellcode anhängen? In Ruby irb wurde das Letzte angezeigt, das zurückgegeben wurde, aber es ist nicht irb. – PatNowak

+0

Wenn Sie dies in einer Rails-Konsole oder einem Web-Debugger sehen, würde ich mich nicht darum kümmern. Wie @PatNowak sagt, wird das Objekt in der REPL ausgedruckt, nachdem eine Zeile ausgeführt wurde, aber wenn Sie Ihre App auf einer Webseite besuchen, wird dies nicht passieren. –

+0

Ich besuche meine Seite auf einem lokalen Server (localhost: ****/foo/bar). also sollte das nicht passieren, oder? Wie kann ich das vermeiden? Der Hash, der ausgedruckt wird, ist: @tag_color_hash – fr0styy

Antwort

1

Sie bekommen das, weil Sie ein = Zeichen in Ihrem .each Schleife eingeschlossen haben. Wenn Sie <%= schreiben, sagen Sie dem .erb Interpreter, dass das, was innerhalb der Klammern ist, auf der Seite angezeigt wird. Ändern Sie die Zeile

<%= @tag_color_hash.each do |tag, color| %> 

zu

<% @tag_color_hash.each do |tag, color| %> 

und Ihr Problem behoben bekommen sollte. Here's a link to a useful StackOverflow answer.