我不明白为什么在开发模式下,即使在插入新记录之后,查询也会被缓存。我的意思是,在创建新记录后,我的Model.all不会从数据库中提取该记录。我检查过IRB,记录仍然存在。一旦我重新启动服务器,就会显示新记录。
以下是详细信息......
首次启动服务器后,当我点击pagecontroller #index时,日志为
Processing by PagesController#index as HTML
Page Load (14.9ms) SELECT "pages".* FROM "pages"
Rendered pages/index.html.erb within layouts/application (4.1ms)
Completed 200 OK in 237ms (Views: 167.5ms | ActiveRecord: 16.9ms)
创建页面后,用户将被重定向到索引操作,日志为
Started GET "/pages" for 127.0.0.1 at 2012-06-13 09:40:27 -0400
Processing by PagesController#index as HTML
Rendered pages/index.html.erb within layouts/application (1.6ms)
Completed 200 OK in 5ms (Views: 5.2ms | ActiveRecord: 0.0ms)
我的行动
def index
@pages = Page.all
end
def create
@page = Page.new(params[:page])
if @page.save
flash[:notice] = "Page saved Successfully"
redirect_to :action => "index"
else
flash[:alert] = "Errors on saving the page"
render :action => "new"
end
end
我对rails非常陌生,在我对这个问题的研究中找不到任何东西。有人能帮我吗。
GEMS
答案 0 :(得分:1)
Rails 3.2.4存在缓存findall的问题。我建议你按照这个问题升级到更新版本的Rails:Rails 3.2.4 SQL query is caching results on find(:all)