2009-03-04 14 views
1

Railsのページキャッシュメカニズムに関して非常に基本的な理解の問題があります。ページキャッシュを使用してモデルを更新できません

rails 2.0.5アプリケーションでは、フルページキャッシュを多数使用していますが、すべてうまく動作しています。ページはApacheで高速に処理されます。

これまでのところ、すべてのコンテンツは管理セクションで処理されていましたが、キャッシュ掃引機能はうまく機能しています。

しかし、私は今、「admin」名前空間を通らないユーザーにいくつかのセクションのエディションを開きましたが、通常のルートを開きました。

問題は、更新が実行されたときに、「put」アクションでmongrelに行きません。代わりに、キャッシュされたページを取得します(データベースにアクションはありません。 ....)

私はここで何かを逃したような気がしますが、通常のRESTルートでページキャッシュを使用することは可能ですか?または私はmongrel/apache設定に問題がありますか?

EDIT:あなたの答えのための

おかげで、それはフルページキャッシュメカニズムが正常に動作し、私が何を意味するのかではないですが、私はページを更新し、管理コントローラに掃除を捧げてきました。

私の問題は、モデルが通常のコントローラで更新されたときに、フォームが適切なアクションではなくキャッシュされたページに送信されることです。

形で

/ページ/ 1-ハロー/編集
フォームは、「1-ハロー/ /ページ」のメソッドを「置く」

に掲示しなければならないが、私はそれがに行くと信じて

フォームを送信すると、表示アクションが表示され、フラッシュメッセージは表示されず、更新されません。 私は私のパブリックディレクトリ内のキャッシュされたファイルを消去し、フォームを再度提出し、すべてがうまく動作します....

私は "the rail ways"のキャッシュセクションとrailsenvy.comのチュートリアルを読んだが、そのような問題をもたらすキャッシュされたページについて何か言及しています....

答えて

1

おそらくページのキャッシュが大きすぎます。ページ全体をキャッシュしてからputアクションを使用してそのページの内容を変更すると、明示的にキャッシュをクリアしない限り、ページは変更を登録しません。

「Rails Way」のコピーがある場合、次回の読み込み時にページが期限切れになるようにページが期限切れになるような例がいくつかあります。

多かれ少なかれ、あなたのアクションを作成中に、次のような何かをする必要があります:

expire_page :action => 'index' 

あなたはまた、明示的にAの後に、それを呼び出すために必要とせずに、あなたのモデルを観察し、キャッシュを期限切れにオブザーバーを作成することができますアクションを作成または更新します。

希望に役立ちます。

関連する問題