0

我不确定为什么会收到此错误,因为它似乎确实是 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'
4

1 回答 1

0

您必须在 1.8.6 上运行。升级,或require 'backports/1.8.7/enumerable/take'

于 2013-04-10T14:03:54.433 回答