Rails 5 - 在application_helper.rb中定义的渲染数组

时间:2016-12-15 13:28:16

标签: ruby-on-rails arrays ruby view ruby-on-rails-5

我想使用nhl_scores gem来获取并显示页面上最近的NHL游戏分数。这就是我在app / helpers / application_helper.rb中定义方法的方法:

def scores
    games = NHLScores::Games.new
    s = []
    games.recent.each do |g|
        s.push("#{g.away_team} @ #{g.home_team} - #{g.away_team_score}:#{g.home_team_score}")
    end
    s
end

这就是我显示这个数组的方式:

<ul>
    <%= scores.each do |s| %>
        <li><%= s %></li>
    <% end %>
</ul>

结果是:

pic with result

是的,由于某种原因,完整数组会在最后一个结束li标签之后但在结束ul标签之前显示。我该如何删除它?我应该定义在其他地方返回此数组的方法吗?

2 个答案:

答案 0 :(得分:0)

试试这个

<ul>
    <% scores.each do |s| %>
        <li><%= s %></li>
    <% end %>
</ul>

<%= %>再次显示您不想要的整个得分数组(<%= %>会导致显示该值)。

答案 1 :(得分:0)

请勿使用<%=输出scores.each的结果,即scores

您正在<li>块中输出.each标记,然后在.each完成后,each返回的值(scores )正被传递给<%=,并将其发送到浏览器。

您需要了解何时使用<%<%=;在这种情况下,您需要<%