0

例外のキャッシュを防ぐにはどうすればよいですか? 私はこのアクションを持っています:

caches_page :index
...
def index
  if params[:city]
    city = City.find(params[:city])
    @shows = city.shows
  else
    @shows = Show.all
  end
...

ActionRecord::RecordNotFound が何もキャッシュされていない状態で find がクラッシュした場合、問題ありません。しかし、ログ ファイルにもこの例外を記録したくありません。しかし、もし私が:

  begin
    city = City.find(params[:city])
  rescue ActiveRecord::RecordNotFound
    render :nothing => true
    return
  end

空のページがキャッシュされました!

この状況で私は何をすると思いますか?

4

1 に答える 1

0

試す :

caches_page :index, :if => :city_exists?

private

def city_exists
  city = City.find(params[:city])
  !city.nil? ? true : false
end

また、アクション キャッシングまたはフラグメント キャッシングを使用できると思います。

Extending Cachingの詳細を参照してください。

于 2012-04-04T06:34:45.040 に答える