0

私はこのコードを持っています:

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 個のエントリを持つことができることです。

PHP には $$var のようなものがあります。Ruby には何かありますか? たぶんこれが役立つかもしれません。

4

3 に答える 3

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

メソッドのデフォルトブロックedit_lineは同じことを行うので、これを次のように簡略化できます。

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{}

于 2009-06-12T13:28:49.150 に答える
0

友人は私にこれを指摘しました:

data.each_index { |i| data[i] = edit_line() { data[i].text } }
于 2009-06-11T08:52:34.857 に答える