Этот ответ основан на вашем (удаленном) комментарии:
После того, как я попробовал ваше решение † , там написано undefined method `name' for [:id, "1"]:Array
† с использованием product.name
вместо product[:name]
Ваш массив @products
содержит другие 2-элементные массивы, подобные этому:
@products = [[:id, "1"], [:id, "2"], [:id, "3"]]
Поэтому каждый product
относится к одному из этих внутренних массивов, а product[:name]
приводит к сообщению об ошибке:
product = @products.first
#=> [:id, "1"]
product[:name]
# TypeError (no implicit conversion of Symbol into Integer)
Вы решаете эту проблему, изменяя содержимое массива @products
. Это должны быть экземпляры Product
, а не другие массивы. Назначение, вероятно, происходит в вашем контроллере.