【发布时间】:2013-04-10 22:03:54
【问题描述】:
我不确定为什么会出现此错误,因为它在 Ruby 1.8.7 中似乎是一个数组。
下面是相关代码:
rows.each_with_index do |row, index|
if (index == 0) then
log "Found the following slow statements (took over #{slow_query_threshold} seconds):"
end
row_data = row.strip().split('|')
connections = row_data[1].split(', ')
n_more = '... and #{connections.length - 3} more' if connections.length > 3
log %{[#{row_data[0]}] on #{connections.take(3).join(', ')} #{n_more}}
end
这给了我这个错误:
2013-04-10T05:36:45.04Z : Found the following slow statements (took over 5.0 seconds):
/myscript.rb:111: undefined method `take' for ["App15(28.39sec)"]:Array (NoMethodError)
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `each_with_index'
【问题讨论】:
-
Ruby 1.8.7 支持
take:RUBY_VERSION => "1.8.7"%w[a b c d].take(3) => ["a", "b", "c"] -
似乎 ruby 版本可能早于 1.8.7。