加倍加额外输出,为什么?

时间:2015-10-12 17:01:32

标签: ruby-on-rails ruby-on-rails-4

当下面的代码执行时,我的页面输出加倍,我没看到什么?我不希望[]里面的文字。

<dt>Publications</dt>
            <dd>
                <ul>
                    <%= @person.pubs.each do |pub| %>
                        <li><%= pub.authors %>, <%= pub.title %>, <%= pub.journal %>, <%= pub.date %>, <%= pub.link %></li>
                    <% end %>
                </ul>
            </dd>

输出如下所示:

出版物

    Thiebaud N, Johnson MC, Butler JL, Bell GA, Ferguson KL, Fadool AR, Fadool JC, Gale AM, Gale DS, Fadool DA, Hyperlipidemic diet causes loss of olfactory sensory neurons, reduces olfactory discrimination, and disrupts odor-reversal learning., J. Neurosci., 2014,
    [#<Pub id: 1000, person_id: 7, pubmed_id: nil, journal: "J. Neurosci.", title: "Hyperlipidemic diet causes loss of olfactory sensor...", auth_id: "Fadool DA", authors: "Thiebaud N, Johnson MC, Butler JL, Bell GA, Ferguso...", pages: "34(20):6970-84", date: "2014", type: nil, link: nil, notes: nil, created_at: nil, updated_at: nil>] 

此文本还包含我的代码中未调用的信息。

1 个答案:

答案 0 :(得分:2)

<%= @person.pubs.each do |pub| %>
    <li><%= pub.authors %>, <%= pub.title %>, <%= pub.journal %>, <%= pub.date %>, <%= pub.link %></li>
<% end %>

应该是

<% @person.pubs.each do |pub| %>
    <li><%= pub.authors %>, <%= pub.title %>, <%= pub.journal %>, <%= pub.date %>, <%= pub.link %></li>
<% end %>

(注意执行=循环的行上没有.each符号。

<%=是一份印刷声明。 .each返回集合,因此在您的情况下结果是双输出:一个来自内循环,一个来自.each