2011-11-10 11 views
1

変数を作成して増やす必要がないように、レコード番号を書き込むための組み込みメソッドがありますか?この時点で練習を開発するだけです。 file.recnumberRuby Doループと反復

<% i = 1%> 
<% @files.each do |file| %> 

<%= i %>. <%= file %> (<%= file.size %>)k<br /> 
<% i = i + 1%> 

<% end %> 

答えて

3
<% files.each_with_index do |file, index| %> 
    ... 
<% end %> 
0

別の方法としては、単にHTML順序付けられたリストを使用することです:

1. file one 
2. file two 
3. file three 
4

<ol> 
<% ["one", "two", "three"].each do |file| %> 
    <li>file <%= file %></li> 
<% end %> 
</ol> 

はあなたのCSSとは、簡単にスタイルすることができ、次のようなものを、与えます

私はあなたがブロックに2番目の引数としてインデックスを渡すeach_with_indexを探していると思います。

あなたがeachよりもより洗練された何かをしたい場合は

は、ルビーの最近のバージョンはまた、あなたが任意の列挙方法への連鎖は、インデックス付きのバージョンを取得することができ with_index方法が挙げられます。たとえば:

('a'..'z').map.with_index {|letter, index| "#{index} #{letter.upcase}" } 
1

は実際には、IOオブジェクトとファイルオブジェクトは、LINENO方法を持っています。

File.open("test.txt") do |file| 
    file.each{|line| puts "#{file.lineno}: #{line}"} 
end