2009-06-11 8 views
0

私はこのコードを持っている:ルビー - 靴 - edit_line関数呼び出し

Shoes.app do 

    data = [1,2,3,4] # could be also more 

    data.each { |i| 
    edit_line ("foo"){ puts i} 
    } 

end 

値edit_lineフィールド内(FOO)の変化は、私はターミナル1,2,3または4に表示さしかし、私は必要各edit_lineフィールドの値(.txt)。どのように私はそれを参照することができますか? 問題は、データが動的でn個のエントリを持つことができることです。

$$ varのようなものがありますか?rubyには何かがありますか?多分これが助けになるかもしれない。

+0

Pestoの回答がうまくいきますが、この質問を終了できるようにこの回答を受け入れてください。 – peter

答えて

0

友人はこれに私を指摘:

data.each_index { |i| data[i] = edit_line() { data[i].text } } 
0

あなたが#each_with_indexをしたい、インデックスとデータの両方が格納されている必要があるので。私はその部分を支援することはできませんので、私は靴を使用したことがありませんが、そうのような#each_with_index作品は:

data = ["cat", "bat", "rat"] 
data.each_with_index {|i, d| print "#{i} => #{d} "} 

これが印刷されます: 0 =>猫 1 =>バット 2 =>ラット

2

あなただけedit_lineの変更は、あなたがchange方法を利用することができ、データとtext方法を見たい場合:へのデフォルトのブロックので

Shoes.app do 

    data = [1,2,3,4] # could be also more 

    data.each do |i| 
    edit_line('foo').change do |e| { puts "#Edit Line #{i} Changed: #{e.text}" } 
    end 
end 

を方法は同じことは、あなたがこれを簡略化することができない。また

Shoes.app do 

    data = [1,2,3,4] # could be also more 

    data.each do |i| 
    edit_line 'foo' do |e| { puts "#Edit Line #{i} Changed: #{e.text}" } 
    end 
end 

、複数行ブロックの使用do/end代わりの{}が好みのスタイルであることに注意してください。