我的html.erb文件中有这个:
Map
输出如下:
<%= @pg_search_documents.each do |result| %>
<%= simple_format(result.content) %><br><br>
<% end %>
前两行按预期打印,但不知何故,除了内容之外,还有更多内容,即包含整个条目的列表。
如果我写这个:
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">]
前两行按预期消失,但不知何故,仍然有这个列表:
<%= @pg_search_documents.each do |result| %>
如果我什么都不写,那么什么都没发生。我需要做什么,第二个列表没有打印出来?
答案 0 :(得分:2)
那是因为你输出了迭代器的行:
<%= @pg_search_documents.each do |result| %>
注意额外的=
,它实质上是在引擎盖下调用to_s
。拿出来。
<% @pg_search_documents.each do |result| %>
有关<% ... %>
和<%= ... %>
之间的区别,请参阅this question。