0

開発モードで、新しいレコードを挿入した後でもクエリがキャッシュされる理由がわかりません。つまり、新しいレコードを作成した後、私の Model.all はデータベースからそのレコードを取得しません。IRB に確認したところ、記録は保持されています。サーバーを再起動すると、新しいレコードが表示されます。

詳細はこちら...

  • すべての環境設定は、「rails new app」によって生成された標準のものです

サーバーの起動後初めて、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)

ページを作成した後、ユーザーは index アクションにリダイレクトされ、ログは

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

私はレールにかなり慣れていないので、問題の調査で何も見つかりませんでした。誰かが私を助けることができますか?

宝石

  • アクションメーラー (3.2.4)
  • アクションパック (3.2.4)
  • アクティブモデル (3.2.4)
  • アクティブレコード (3.2.4)
  • アクティブリソース (3.2.4)
  • アクティブサポート (3.2.4)
  • アレル (3.0.2)
  • bcrypt-ルビー (3.0.0)
  • ビルダー (3.0.0)
  • バンドラー (1.1.4)
  • ci_reporter (1.7.0)
  • コーヒーレール (3.2.1)
  • コーヒースクリプト (2.2.0)
  • コーヒースクリプトソース (1.3.3)
  • エルビス (2.7.0)
  • execjs (1.4.0)
  • ハイキング (1.2.1)
  • 国際化 (0.6.0)
  • 旅 (1.0.3)
  • json (1.7.3)
  • libv8 (3.3.10.4 x86_64-darwin-11)
  • メール (2.4.4)
  • メタクラス (0.0.1)
  • MIME タイプ (1.18)
  • モカ (0.11.4)
  • multi_json (1.3.6)
  • mynyml-レッドグリーン (0.7.1)
  • ポリグロット (0.3.3)
  • ラック (1.4.1)
  • ラックキャッシュ (1.2)
  • ラック-ssl (1.3.2)
  • ラックテスト (0.6.1)
  • レール (3.2.4)
  • レールティー (3.2.4)
  • レーキ (0.9.2.2)
  • rdoc (3.12)
  • rubygems-bundler (1.0.2)
  • rvm (1.11.3.3)
  • サス(3.1.19)
  • サスレール (3.2.3)
  • スプロケット (2.1.3)
  • sqlite3 (1.3.6)
  • 用語 - ansicolor (1.0.7)
  • therubyracer (0.10.1)
  • トール (0.15.2)
  • 傾き (1.3.3)
  • tinymce レール (3.5)
  • こずえ (1.4.10)
  • ツズインフォ (0.3.33)
  • 醜い (1.0.3)
4

1 に答える 1

1

Rails 3.2.4 では、findall のキャッシュに問題がありました。この質問に従って、Rails の新しいバージョンにアップグレードすることをお勧めします: Rails 3.2.4 SQL query is caching results on find(:all)

于 2012-06-13T15:25:46.757 に答える