Предположительно у вас есть опечатка, и вы делаете это:
readings = ModelName.order("date DESC").
select('table_name.precise_number1, table_name.precise_number2').
limit(100).
all.
zip
вместо присвоения rows
. Заметили, что zip
в конце? Это не имеет никакого смысла. Когда вы делаете это:
[a, b, c].zip
Вы получите это:
[[a], [b], [c]]
Итак, в вашем readings.each
блоке row
на самом деле [model]
, а не model
, который, как вы думаете, есть, и это означает, что row[:precise_number1]
пытается получить доступ к Array row
с использованием символа :precise_number1
вместо целочисленного значения, ожидаемого массивом, следовательно, ваша ошибка "не удается преобразовать символ в целое число".
Так что либо избавьтесь от zip
и оставьте свой each
как есть:
readings = ModelName.order("date DESC").
select('table_name.precise_number1, table_name.precise_number2').
limit(100).
all
# ...
readings.each do |row|
rows_stringified1.push row[:precise_number1].to_s
rows_stringified2.push row[:precise_number2].to_s
end
или оставьте zip
и настройте блок each
так, чтобы row
действительно выглядело так:
readings = ModelName.order("date DESC").
select('table_name.precise_number1, table_name.precise_number2').
limit(100).
all.
zip
# ...
readings.each do |row|
rows_stringified1.push row.first[:precise_number1].to_s
rows_stringified2.push row.first[:precise_number2].to_s
end
Я бы порекомендовал избавиться от zip
, так как он ничего не дает и просто сбивает с толку.