Rails 5 - 在 application_helper.rb 中定义的渲染数组
Rails 5 - rendering array defined in application_helper.rb
我想使用 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 标签之前。我该如何删除它?我应该在别处定义 returns 这个数组的方法吗?
试试这个
<ul>
<% scores.each do |s| %>
<li><%= s %></li>
<% end %>
</ul>
<%= %>
再次显示您不想要的整个分数数组(<%= %>
导致显示值)。
不要用<%=
输出scores.each
的结果,即scores
.
您在 .each
块中输出 <li>
标记,然后当 .each
完成时,从 each
返回的值(scores
) 被传递给 <%=
,它回显给浏览器。
您需要注意何时使用 <%
和 <%=
;在这种情况下,您需要 <%
.
我想使用 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 标签之前。我该如何删除它?我应该在别处定义 returns 这个数组的方法吗?
试试这个
<ul>
<% scores.each do |s| %>
<li><%= s %></li>
<% end %>
</ul>
<%= %>
再次显示您不想要的整个分数数组(<%= %>
导致显示值)。
不要用<%=
输出scores.each
的结果,即scores
.
您在 .each
块中输出 <li>
标记,然后当 .each
完成时,从 each
返回的值(scores
) 被传递给 <%=
,它回显给浏览器。
您需要注意何时使用 <%
和 <%=
;在这种情况下,您需要 <%
.