0

レールにキャッシングを実装しようとしていますが、ホームページ全体をキャッシュしたいと考えています。これまでのところ、cache_page :homeコントローラーでメソッドを使用するのが最も簡単な方法ですが、一度も機能していないようです。これが私のhome方法です。

  def home 
    @banners = BannerUpload.order('series').with_attached_image
    img = ActionController::Base.helpers.asset_path("share-meta.png")

    @sections = Section.includes(:homepage_items).where(active: true).order('position')
    @testimonials = Testimonial.where(status: true)
  end

これは私が得ているエラーです:

undefined method each_with_index for nil:NilClassオブジェクトの@banners場合、初回でもクエリがヒットしないことを意味します。

この問題に関する記事も見つかりませんでした。さまざまなストアを設定しようとしましたが、助けにはなりません:

config.cache_store = :mem_cache_store または config.cache_store = :memory_storeなど

編集

私はそれを自分で解決しました。実際、レールにはデフォルトでページキャッシュが含まれていないという事実を私は知りません。そのため、正常に機能した後、gem 'actionpack-page_caching' に含める必要がありました。

4

2 に答える 2