問題タブ [action-caching]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
1698 参照

ruby-on-rails - アクションキャッシングが有効になると、format.jsはDOMを操作しません

注:ここでは、私が行っていることのロジックを示しています。

私がしていること:

商品を一覧表示し、ページ付けを行う基本的なインデックスアクションについて考えてみてください。ここでremote-trueオプションを使用して、ajaxベースのページネーションを有効にしました。これまでのところ、物事は完全にうまく機能しています。サンプルコードを見てください。

製品コントローラー:

Index.html.erb

Index.js.erb

だから問題は何ですか:

ここで、これに対してアクションキャッシングを有効にします。しかし、index.js.erbファイルはDOMを操作していません。remote-true機能を削除すると、キャッシュで問題なく動作します。

アクションキャッシングのために、コントローラーの上部に次の行を追加しました。

助言がありますか?

アップデート:

問題は、jqueryコードが実行されていないことです。この質問から

何が悪いのかわかりました。jQueryは実際に着信スクリプトをで囲み、ブラウザが着信コードを評価するようにします。ただし、キャッシングメカニズムはコードをテキストとして保存するだけであり、1回再リクエストすると、コードはテキストとして返されますが、評価はされません。したがって、コードを明示的に評価する必要があります

しかし、この問題を解決するにはどうすればよいですか?

0 投票する
1 に答える
1259 参照

ruby-on-rails - Rails で expire_action を実行できません

tl;dr

以下のexpire_indexメソッドが呼び出さputsれています。ログに が表示されます。ただし、ページを更新すると古いバージョンです。

注:モデルの更新には rails_admin を使用しています。しかし、Rails コンソールを直接使用しても同じ動作に気付きました。

ご協力いただきありがとうございます。とても有難い!

詳細

app/controllers/posts_controller.rb

app/sweepers/post_sweeper.rb

config/environments/production.rb

0 投票する
2 に答える
1548 参照

ruby-on-rails - Rails アクション キャッシング RSpec テストが失敗する

キャッシュが無効な場合とキャッシュが有効な場合のアクション キャッシュをテストする仕様があります。テストの実行順序が合格するかどうかに影響するようです。

上記の順序でテストを実行すると、最後の期待値に cache_store が存在しないため、最後のテストが失敗します。キャッシングなしのテストがキャッシングのテストに影響を与えている理由に困惑しています。誰が何が悪いのか知っていますか?

0 投票する
1 に答える
1801 参照

ruby-on-rails-3 - 期限切れ後のRailsアクションキャッシュの更新

パブリックにアクセス可能なエンドポイントを使用して、コントローラー アクションのキャッシュを期限切れにしてから更新しようとしています。

現在、私のアプリでは、/all はキャッシュされた json を返し、/update はキャッシュを期限切れにします。以下の既存の関連コードを確認できます。私がやりたいのは、キャッシュを期限切れにするだけでなく、強制的に更新することです。だから、私の質問は:

アクションをヒットせずに、有効期限が切れた後にアクションキャッシュの更新を開始する方法はありますか?

それに対する答えが「いいえ」である場合 (私が疑い始めているように)、これを行うための最良の方法は何でしょうか? 更新アクションが 301 リダイレクトではなく HTTP 200 ステータスを返す必要があるため、/all へのリダイレクトだけはオプションではありません。

ベンダーコントローラー

0 投票する
1 に答える
771 参照

ruby-on-rails - Railsエンジンのコントローラーでcaches_actionが未定義

私はRails4アプリを持っており、Rails 4エンジンMyEngineがコントローラーにマウントされていますMyController

次のように、キャッシュ用のコントローラーで複数のアクションを定義しました。

gemspecに gemactionpack-action_cachingバージョンも含めました1.0.0

を指すルートをヒットしようとするMyControllerと、次のエラーが発生します。

私は開発環境を使用しているため、環境の構成も変更してキャッシュを有効にしました。

engine.rbこのブロックをインto_prepareとブロックに追加するなど、さまざまなことを変更しようとしましたinitializer

にも設定config.action_caching = trueしてみましたengine.rb

私は何かを見つけることができないだけで、非常に基本的なものを見逃していると確信しています!

編集1

caches_actionアプリケーション内のアクションにも追加してみました。同じエラーがスローされます。

デバッグするために、いくつかの印刷ステートメントを内部に追加しましたgem

この行で、サーバーの起動時require 'action_controller/action_caching'に出力されます。true

それはもっと不可解です!

0 投票する
0 に答える
205 参照

ruby-on-rails - カスタム cache_path を使用したアクション キャッシュ用の Expire Cache

次の構文を使用して、レール 3.2 にアクション キャッシングを実装しました。

ただし、キャッシュが更新されるたびに、デバイスタイプのすべてのバージョンでアクションキャッシュが期限切れになるようにします。コントローラーで次の構文を使用しています。 expire_action( :action => :show)

残念ながら、上記のコードは意図したとおりに機能しません。率直に言って、私はキャッシングを使用するのが初めてであり、どんな助けも大歓迎です。

0 投票する
1 に答える
1388 参照

ruby-on-rails - アクティブ管理でページ キャッシングまたはアクション キャッシングを実装する方法

アプリケーションでアクティブな管理者を使用しています。大量のデータなどを管理しています。アクティブな管理者にページ キャッシング/アクション キャッシングを実装し、特定の呼び出しでフラグメントを期限切れにしたいと考えています。しばらくの間、古いデータがインデックス ページに表示されてもかまいません。アクティブな管理者に page_caching/action_caching を実装する方法の基本的な例を教えてもらえますか?