0

Rails アプリで Twitter と flickr から XML を取得して操作しています。結果はすべてのページに表示され、解析は Hpricot と open-uri を使用してアプリケーション コントローラーで処理されます。

これは、アクション キャッシングを使用した最初の実験であり、機能していないようです。WEBRick を使用して開発モードにしています。適切なものはすべて、development.rb で true に設定されています。

コントローラーの内容は次のとおりです。

  before_filter :twitter, :flickr
  caches_action :twitter, :flickr

/tmp/cache には何も表示されず、ページが読み込まれるたびに Hpricot が実行していることは明らかです。

前もって感謝します。

4

1 に答える 1

2

デフォルトのキャッシュ ストアは、アクションおよびフラグメント キャッシュ用のメモリであるため、tmp/cache には何も表示されません。デバッグ目的でこれを file_store に変更できます。

開発モードでは、mongrel をインストールして、webrick の代わりにそれを使用することをお勧めします。Webrick よりも高速で、一目でわかる優れた情報を提供します。

アクションがキャッシュされると、フィルター前のすべてが引き続き実行されます。

あなたがやっているように見えるのは、Twitter と flickr のアクションを before_filter のプレーンな古いメソッドとして実行していることです。これはキャッシュを呼び出しません。フラグメントキャッシュを調べて、コントローラーを次のように変更する必要があります。

class SomeController
  before_filter :twitter, :flickr

  protected
  def twitter
    unless read_fragment('twitter')
      ... do stuff ...
    end
  end
end

#_twitter.erb
<% cache('twitter') do %>
  render the relevant stuff
<% end %>
于 2009-06-21T03:09:02.153 に答える