Если мы делаем на консоли:
> Product.all == Product.all.to_a
true
Но если мы делаем:
> Product.all.to_a.where(name: "something")
!! #<NoMethodError: undefined method `where' for #<Array:0x000055b42c6a3f20>>
Это не проблема, если мы не будем запускать этот метод 'to_a'.
Дело в том, что в этой статье о кэше heroku они показывают, как этот метод ниже использует кэширование:
def self.all_cached
Rails.cache.fetch('Contact.all') { all.to_a }
end
И результат запроса, возвращенный этим методом, не может использовать active_record, потому чтоэто та же ошибка, что я объяснил ранее.
Моя главная цель - использовать кеширование и узнать, возможно ли преодолеть эту проблему с помощью подтверждения active_record в качестве работоспособного запроса, когда он находится в массиве.