Rails 3.2.4 Consulta SQL está armazenando resultados em cache em find (: all)
Eu não tenho certeza se esse sistema está armazenando os dados em cache, mas tem algumas das características do armazenamento em cache.
Basicamente eu estava mexendo com trilhos 3.2.4 e o sistema começou a não exibir alguns dos resultados. Eu acho que isso é orvalho para o escopo padrão eu coloquei no modelo de código, mas mesmo assim deve exibir todos os resultados não 9 de 10. No entanto, eu sempre estaria faltando os novos registros que eu criei e quaisquer outros registros que eu criei depois esse registro. Eu verifico o meu banco de dados sqlite3 para ver se os dados foram colocados lá e também verificar todas as informações de conexão, além de ter certeza de que o cache está desativado. No entanto, eu poderia obter os dados para mostrar se eu mudei o arquivo de qualquer modelo ou arquivo de controlador e, em seguida, salvei-o. Nem sequer mudaria o código apenas o comando de toque faria o truque. Eu acho que tem algo a ver com o escopo, mas não tenho certeza absoluta. Uma solução que encontrei é apenas voltar ao Rails 3.2.2. Costuma fazer o truque. Mas eu ainda não gosto de desistir como se eu tivesse desistido disso.
desenvolvimento.rb
# Show full error reports and disable caching
config.consider_all_requests_local = true
config.action_controller.perform_caching = false
house.rb
class House < ActiveRecord::Base
attr_accessible :name
default_scope :order => 'created_at DESC', :limit => 50
validates_presence_of :name
has_many :roomies
end
schema.rb
ActiveRecord::Schema.define(:version => 20120601204050) do
create_table "houses", :force => true do |t|
t.string "name"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
end
houses_controller.rb
class HousesController < ApplicationController
def index
@houses = House.all
end
def new
@house = House.new
end
def show
@house = House.find(params[:id])
end
def create
@house = House.new(params[:house])
if @house.save
flash[:success] = "Your house has been created and is ready to have people added to it."
redirect_to houses_path
else
flash[:error] = "Your house could not be added dew to a error!"
render :action => :new
end
end
end
casas / index.html.erb
<%= debug @houses %>
Como você pode ver nada super louco.