我有这样的代码:
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中有什么东西吗?也许这能帮上忙。
发布于 2009-06-12 13:28:49
如果只想在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-11 08:52:35
一位朋友向我指出:
data.each_index { |i| data[i] = edit_line() { data[i].text } }发布于 2009-06-12 00:34:13
因为您需要在那里存储索引和数据,所以需要#each_with_index。我从来没有用过鞋子,所以我不能帮上忙,但#each_with_index是这样工作的:
data = ["cat", "bat", "rat"]
data.each_with_index {|i, d| print "#{i} => #{d} "}这将打印:0 => cat 1 => bat 2 => rat
https://stackoverflow.com/questions/979952
复制相似问题