Rails está almacenando en caché los resultados del alcance
Frecuentes
Visto 1,766 veces
3
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
1 Respuestas
0
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 ruby-on-rails ruby-on-rails-3 activerecord or haz tu propia pregunta.