0

このコードを使用して、ゲスト ユーザーのページをキャッシュできます

caches_page :show, :unless => :user_signed_in?

しかし、現時点では、そのキャッシュされたページをゲストのみにレンダリングする方法を見つけることができないようです.

サインインしているユーザーのみに予約されているページのさまざまなセクションを表示するために JavaScript を使用できることは知っていますが、私のアプリは複雑で、サインインしているユーザーまたはゲスト用に予約されているさまざまな要素がページに含まれています。ターボリンクまたは pjax を使用しているときに、これを解決するために費やさなければならない時間についても言及します。フラグメントキャッシングは良い方法のように思えますが、Rails 3.xx でこれが可能かどうかをまず知りたいと思います。かなり単純なようですが、よくわかりません..


Railsでキャッシュされたページをゲストのみに表示するにはどうすればよいですか?

前もって感謝します。

4

1 に答える 1

1

Railsガイドを引用するには

ページ キャッシングの問題の 1 つは、何らかの方法でアクセスを制限する必要があるページには使用できないことです。ここでアクション キャッシングの出番です。アクション キャッシングはページ キャッシングと同じように機能しますが、受信した Web リクエストが Web サーバーから Rails スタックとアクション パックに送られ、キャッシュが提供される前にフィルターを実行できるという点が異なります。これにより、キャッシュされたコピーからの出力結果を提供しながら、認証やその他の制限を実行できます。

したがって、簡単な答えは、代わりにこれを使用する必要があるということです

caches_action :show, :unless => :user_signed_in?

authenticate_user!before filter を最初に実行できるようにします。

于 2013-07-31T16:21:24.857 に答える