2016-12-15 1 views
0

nhl_scores gemを使用して、最新のNHLゲームの得点をページに表示したいと考えています。これは私がアプリ/ヘルパー/ application_helper.rb方法を定義した方法です:Rails 5 - 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タグの前に完全な配列が表示されます。どうすれば削除できますか?この配列を他の場所に返すメソッドを定義する必要がありますか?

答えて

0

この

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

<%= %>は(<%= %>が表示される値の原因となる)あなたはいけないどの再び全体のスコアの配列を表示してみてください。

+0

くそー、 "="記号に気付かなかった!残念だ... –

0

は出力にscoresあるscores.eachの結果を、<%=を使用しないでください。

あなたは.eachブロック内<li>タグを出力している、と.eachが行われているときに、eachscores)から返された値は、それをブラウザにエコー表示され<%=に渡されています。

<%<%=をいつ使用するのかを意識する必要があります。この場合、<%が必要です。