問題タブ [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.
ruby-on-rails - スコープのカウンター キャッシュ
以前にアプリでいくつかの counter_caches を設定しましたが、単純な belongs_to 関係のみを対象としています。
私は次のような多くのクエリを実行しています
got はコレクション モデルのスコープです
「取得済み」とマークされた user.collections の数をカウントするように counter_cache を設定できますか? 私が見る問題は、counter_cache が create または destroy でのみ更新され、更新アクションでは更新されないことです。これには良い方法がありますか?
ruby-on-rails - アソシエーション内のオブジェクトの数以外の counter_cache を使用して何か他のものを追跡することは可能ですか?
私がやろうとしているのは、簡単で軽い方法です...PostsController#Show
アクションが起動されるたびに、post.views
またはpost.view_count
列をインクリメントします。あまり重いことはしたくありません。
ネイティブcounter_cache
が完璧なように感じます...しかし、それは特に関連オブジェクトの数です。
とにかく、私はそれを再利用できますか?または、基本的な概念を好きなように使用しますか?
ruby-on-rails-4 - counter_culture sum で深く関連付けられた column_names
counter_culture メソッドで column_names を定義する場合、深く関連付けることはできますか? ドキュメントと例では、常に column_names を決定するために使用されるモデルに属する属性です。しかし、属性が関連付けられたモデルに属している場合はどうなるでしょうか?
たとえば、これは機能します
関連例
上記の場合、column_names メソッドで結合を使用できる (できない) 場合、次のようになります。
2 番目の例は、私の質問を示しています。評価する必要がある属性が親モデルではなく、関連付けられたモデルに属している場合、column_names をどのように定義しますか?
ruby-on-rails - ワーカーから新しい値を作成するときにカウンター キャッシュがレールで機能しない
カウンターキャッシュを使用したいレールアプリがあり、アプリに実装する前に、サンプルアプリでそれがどのように機能するかを確認してみましたが、うまく機能しました。しかし、私が要求されたアプリでそれを機能させることはできません。
2 つのアプリの違いは、create が counter_cache で動作するアプリのコントローラーから呼び出されるのに対し、create は動作しないアプリのワーカーから呼び出されることです。
それで、それを機能させるためにコントローラーからのみレコードを作成する必要がありますか、それとも他のエラーでしょうか?
私を助けてください。前もって感謝します。
コードサンプル
私のコメントコントローラーには
そして私の見解では、私は持っています
上記のコードは機能しますが、
async として呼び出される sidekiq ワーカーでは機能しません。つまり、テーブル内のカウントをインクリメントしません。
ruby-on-rails - オブジェクトをインクリメントするには、クラス メソッドまたはインスタンス メソッドを使用する必要がありますか?
Rails で属性をインクリメントするには、次の 2 つの方法があります。
インスタンスレベル: http://apidock.com/rails/ActiveRecord/Base/increment !
クラスレベル: http://apidock.com/rails/ActiveRecord/Base/increment_counter/class
投稿のコメント数を保存する Post モデルのカウンター属性を更新したいと考えています。
私のユースケースには2つのどちらが適していますか?
PostgreSQL データベースで使用します。
php - 属しているCakePHP counterCache (HABTM)
私は次のモデル構造を持っています。
役職
ID、タイトル、テキストなど
鬼ごっこ
ID、名前、posts_count、作成済み
タグ_投稿
id、tag_id、post_id、作成済み
タグ モデル:
ポストモデル:
タグ投稿モデル:
TagsPost モデルの belongsTo の counterCache が機能しないのはなぜですか? 関連タグ付きの投稿が投稿された場合はタグモデルの posts_count を増やし、投稿が削除された場合は減らしたいです。
ruby-on-rails - 過去 30 日間のデータのみを使用して counter_cache で注文する方法
番組のリストを視聴回数でランク付けしようとしています。
現在、Program モデルと Views モデルがあり、そのプログラムに属しています。
Views.rb で counter_cache を作成します。
.views_count を使用してプログラムを並べ替えることができます。ただし、views_count は常に更新されるため、2 年前に 200 回視聴され、今年はまったく視聴されなかった番組は、先月 30 回視聴された番組よりも上位にランク付けされます。
views_count を計算する際に、たとえば過去 30 日間に発生したビューのみを考慮したいと指定できるようにしたいと考えています。
Program モデルのメソッド recent_views を作成し、コントローラで sort_by を使用しようとしましたが、時間がかかりすぎてタイムアウトすることがよくあります。現在、最近更新されたプログラムに views_count を使用していますが、この問題は解決しません。
モデルでこれを行う簡単な方法はありますか?
過去 30 日間のみを含む個別の counter_cache を作成する方法はありますか?