Rails está almacenando en caché los resultados del alcance

Tengo un modelo que tiene un alcance de 'resumen' que solo obtiene un par de campos importantes:

class Cupcake < ActiveRecord::Base
  scope :summary, select([:id, :name])
end

Si llamo a este alcance y luego llamo

Cupcake.find(id)

Obtengo el registro con solo los atributos de identificación y nombre poblados.

¿Hay alguna opción que pueda pasar al comando de búsqueda para obligarlo a ir a la base de datos? Además, ¿no deberían generar declaraciones SQL completamente diferentes y, por lo tanto, ActiveRecord se vería obligado a ir a la base de datos?

Nota: estoy usando Rails 3.2.3 con la gema pg

preguntado el 03 de mayo de 12 a las 17:05

1 Respuestas

Puede utilizar el método no almacenado en caché. Ver http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/QueryCache.html#method-i-uncached

Como un ejemplo:

uncached_cupcake = ActiveRecord::Base.uncached do
  Cupcake.find(id)
end

Espero que esto ayude.

respondido 07 nov., 16:12

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.