pList - это массив, проиндексированный с 0, 1, 2, 3, 4 ...
Ваша линия
pList[picture.id-1] += 1
может ссылаться на индекс, который не существует. Например, если pList имеет 50 членов, он имеет значения 0-49. Если идентификатор вышеупомянутого изображения 7891, то он попытается найти индекс 7890, который, конечно, не существует. Это вернет nil и попытается выполнить «nil + = 1», отсюда ваша ошибка.
Возможно, pList должен быть хэш-ключом с идентификаторами картинок? Зависит от того, что вы пытаетесь достичь. Но что бы вы ни пытались сделать, почти наверняка есть менее подробный способ выразить это в Ruby.