問題タブ [counter-cache]

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 投票する
1 に答える
357 参照

ruby-on-rails - キャッシュカウンター列が再計算された値を保存していません

ユーザーテーブルのカウンターキャッシュ列を台無しにしました。再計算してみましたが、値が保存されませんでした。

これは機能していません:

これでもない:

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

ruby-on-rails - カウンターキャッシュ列を一貫して増やすにはどうすればよいですか?

ページが読み込まれるたびにインクリメントする必要のあるカウンターキャッシュがあるとします。10個のWebインスタンスがあるとします。カウンターキャッシュ列を一貫して増やすにはどうすればよいですか?

1つのWebインスタンスで一貫性を保つのは簡単です。ただし、いくつかのインスタンスが実行されていると、競合状態が発生する可能性があります。

ここに簡単な説明があります。カウンターキャッシュ列が呼び出されfoo_counts、その開始値が0であるとします。2つのWebインスタンスが同時にロードされると、両方ともカウントを0として認識します。カウントを増やすときが来ました。どちらもカウントを0から1にインクリメントします。

http://guides.rubyonrails.org/active_record_querying.html#locking-records-for-updateを見ました

任意のアイデアをいただければ幸いです。

0 投票する
3 に答える
1400 参照

ruby-on-rails - Ruby on Rails-カウンターキャッシュトランザクションは安全ですか?

問題を更新する2人の問題を処理しますか?

私はグーグルでAPIを調べましたが、何も見つかりませんでした

Rails 3+、Ruby 1.9.3

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

ruby-on-rails - counter_cache列が返す0のRspecテスト

何日もの間、私は継ぎ目の底に到達して、非常に簡単に実行できるようにしようとしてきました...しかし、私はまだレールとルビーの世界に非常に慣れていないので、これを解決することはできません。 ..:p

とにかく、私が抱えている問題は、モデルにいくつかの:counter_cache列があり、それらを手動でテストするとすべてうまく機能していることです。しかし、私はTDDのことをやりたいのですが、何らかの理由でrspecでそれらをテストするためにシームを使用できませんか?

とにかくここに私のモデルの例があります(ユーザー、コメント、メディア):

テーブルのスキーマ設定のサンプルは次のとおりです。

そして今ここに私が試したrspecの例のサンプルがあります:

そして最後に、rspecが私に与えるエラーメッセージ:

また、これはすべてのモデルのすべてのcounter_cache列で発生していることに注意してください。また、これをテストするさまざまな方法を試しましたが、すべて上記のエラーメッセージが返されます。

誰かがこれで私を助けることができることを本当に望んでいます。:)

事前にヒープに感謝します!ルーク

更新:これはcounter_cultureにも同じように影響し、以下の解決策はcounter_cultureの問題も修正します。

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

php - Cakephp counterCache 複数の counterScope - 論理的な問題

問題:

ディーラーとテストドライブの 2 つのモデルがあります (テストドライブは、dealer_id を通じてディーラーに属します)。ディーラーに関するリアルタイムの統計を表示したい: 合計 (Testdrive.active = 1)、処理済み (Testdrive.active = 1 && Testdrive.processed = 1) ...

私は約 100 のディーラーと 10000 のテストドライブを持っています。カウント ベースの SQL には約 10 秒かかります (非効率的)。現在、1 時間ごとに実行される cronjob がありますが、リアルタイムの統計情報はありません。

私はこのようなことを試しました:

...しかし、belongsTo => 'Dealear' 値を上書きしました。

counterScope の配列を持つ counterCache の配列を持つことはできますか?

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

ruby-on-rails - Rails単体テストでcounter_cacheが正しく更新されるようにするにはどうすればよいですか?

Rails 3.2.6 モデルの通常のcounter_cacheセットアップが完了しました。Web アプリケーションでは問題なく動作しますが、単体テストでは失敗します。

次のスニペットは、当面の問題を示しています。

FactoryGirl を使用せずに同じことを試みたが、それでも失敗したことに注意してください。

単体テストで counter_cache が正しく更新されるようにするにはどうすればよいですか?

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

ruby-on-rails - カウンターキャッシュ値を特定の値に設定するにはどうすればよいですか?

Ruby on Rails 3.2.2を使用していますが、カウンターキャッシュ値を「カスタム」値に設定したいと思います。つまり、現時点では(移行ファイルで)次のコードを使用しようとしています。

言い換えると、:comments_count(カウンターキャッシュデータベーステーブルの列)をカスタム値に設定したいと思います(私の場合、値はarticle.custom_comments.count-:これcustom_commentsはActiveRecordアソシエーションではなく、Articleモデルクラスで指定されたメソッドです。アソシエーションに関連しない整数値も)has_many

たぶん、私は次のようなものを使用することができます/すべきです

しかし、このreset_counters方法はhas_many関連付けなしでは機能しないようです。

:comments_count「カスタムアソシエーション」に関連する特定の値にカウンターキャッシュ値を設定するにはどうすればよいですか?

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

cakephp - CakePHP でビューカウントを追跡するために counterCache() を使用するにはどうすればよいですか?

ユーザーが投稿を表示するたびに、カウントを追跡し、それをセッションに関連付けます。

SubmissionsController:

SubmissionsViews テーブルでそれらを追跡しています。

SubmissionsViews モデル:

私の SubmissionsView テーブルsubmissions_viewsには次のフィールドがあります。

  • ID
  • submit_id
  • user_ip
  • 作成した

そのテーブルへの追加を追跡するように counterCache を設定しようとしていますが、設定方法がわかりません。$belongsTo現在、Submission モデル内にcounterCache を追加しています。

しかし、見つからないと言っていますSubmission.submissions_views_idsubmissionsドキュメントでは、というテーブルにフィールドを追加する必要があるということだけだったsubmissions_views_countので、これを機能させる方法がわかりませんか?

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

ruby-on-rails - 保存後にモデルで counter_cache が更新されない

counter_cacheMySQL に簿記の一部を任せるために を使用しています。

今、私がこれを行うと:

SQL ログには、次のINSERTようなものが続きます。

これは私が期待していたことです。ただし、はcontainer[:items_count]古くなります。

...container.reload更新された値を取得しない限り。私の考えでは、特に属性reloadにアクセスしようとする前に:counter_cache を実際に必要としない可能性があるため、カスタムビルドのものを優先して :counter_cache を使用する目的の一部を無効にしitems_countます。(ドメイン ロジックの性質上、私のモデルはかなりコードが多いため、1 回のコントローラー呼び出しで複数のものを保存および作成する必要がある場合があります。)

自分でコールバックをいじることができることは理解していますが、これは単純な機能に対するかなり基本的な期待のように思えます。繰り返しになりますが、完全に機能させるために追加のコードを記述する必要がある場合は、カスタム カウンターを実装する方が簡単な場合があります。

私は何をしていますか/間違っていると思いますか?

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

ruby-on-rails - カウンターキャッシュが正常に機能しているかどうかを確認するにはどうすればよいですか?

Railscast( http://railscasts.com/episodes/23-counter-cache-column )に記載されていることはすべて実行しました。

私はそれらの設定を行いました

  • 親テーブルである「community_topics」テーブルに新しい列「comments_count」を追加する移行。

  • 私はcounter_cache: trueを models/comment.rb に追加しました (今は、この belongs_to :commentable, :polymorphic => true, counter_cache: true のようになっています)

そして、私はこれを私の見解で持っています

<%= community_topic.comment_threads.size %>

ご存じのとおり、見た目に違いは見られません。
現在、カウンター キャッシュが正常に機能しているかどうかを確認するにはどうすればよいですか?