2016-03-18 11 views
0

Ich habe dies in meiner html.erb Datei:Each.iterator druckt mehr als es sollte, Ruby on Rails 4

<%= @pg_search_documents.each do |result| %> 
    <%= simple_format(result.content) %><br><br> 
<% end %> 

Der Ausgang ist folgende:

nadja kuhn 


Zwischen Nadja Dazwischen 


[#<PgSearch::Document id: 17, content: "nadja kuhn", searchable_id: 122, searchable_type: "Event", created_at: "2016-03-18 22:45:02", updated_at: "2016-03-18 22:45:02">, #<PgSearch::Document id: 19, content: "Zwischen Nadja Dazwischen", searchable_id: 124, searchable_type: "Event", created_at: "2016-03-18 22:45:02", updated_at: "2016-03-18 22:45:02">] 

Die ersten beiden Zeilen werden wie erwartet gedruckt, aber irgendwie kommt da mehr, als nur der Inhalt, nämlich die Liste mit den ganzen Einträgen.

Wenn ich dies schreibe:

<%= @pg_search_documents.each do |result| %> 

Die ersten beiden Linien verschwinden, wie erwartet, aber irgendwie gibt es immer noch diese Liste:

[#<PgSearch::Document id: 17, content: "nadja kuhn", searchable_id: 122, searchable_type: "Event", created_at: "2016-03-18 22:45:02", updated_at: "2016-03-18 22:45:02">, #<PgSearch::Document id: 19, content: "Zwischen Nadja Dazwischen", searchable_id: 124, searchable_type: "Event", created_at: "2016-03-18 22:45:02", updated_at: "2016-03-18 22:45:02">] 

Wenn ich nichts schreiben, dann nichts das passiert. Was muss ich tun, dass diese zweite Liste nicht gedruckt wird?

Antwort

2

Das ist, weil Sie die Zeile Ihres Iterator sind outputing:

<%= @pg_search_documents.each do |result| %> 

Beachten Sie die zusätzliche =, die im Wesentlichen to_s unter der Haube nennt. Hol es raus.

<% @pg_search_documents.each do |result| %> 

Siehe this question auf der Differenz zwischen <% ... %> und <%= ... %>.