問題タブ [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 - Rails counter_cache'd の関連付けが update_attributes で更新されています。counter_cache 列が更新されない
次のような counter_cache 列を使用する Rails 2.3.14 アプリを実行しています。
ワークショップをグループに直接割り当てると、カウンター キャッシュが正常に更新されます。
ただし、group_id を従来の Rails コントローラー スタイルでワークショップに一括割り当てすると、キャッシュは更新されません。これは 2.3.14 のバグだと思います。
古いバージョンにも存在します: http://railsforum.com/viewtopic.php?id=34473
ただし、投稿者の「解決策」には二重カウントのバグがあります。直接割り当てると、デフォルトの Rails アップデーターとコールバック 1が取得されますが、update_attributes では機能します。
そのため、いくつかのことを実行できます。params ハッシュから group_id を取り除き、直接割り当てることができます。または、Workshop モデルの update_attributes にモンキー パッチを適用して、これを行うこともできます。
@workshop.update_attributes を呼び出す可能性のある他の人が同じバグに遭遇する可能性があるため、params ハッシュを取り除くことは避けたいと思います。モンキー パッチの update_attributes は最も安全に思えますが、完全に、恐ろしく間違っています。
他の提案はありますか?
ありがとう!
ruby-on-rails - counter_cache がインクリメントしていません...何が間違っていますか?
これは非常に単純なようで、私の人生を惨めなものにしています。レール 3.1.3.
編集: 以下のアドバイスに基づいて、移行に t.integer "versions_count", :default => 0 を追加し、ロールバックし、データベースを再作成しました。現在、versions_count は 0 のままです。
コンソール:
助けてください、気が狂いそうです。
編集 2: 関連するレコードを削除すると、カウンターの値が減算されるようです。しかし、それは決して追加を取得しません。
ruby-on-rails - _かわった?counter_cacheを使用する場合のメソッド
新しいコメントが追加されたら、属性:average_rateを更新する必要があります。私はcomments.rbにあります
およびpage.rb
page.rbのupdate_average_rateメソッド
しかし、それは機能しません。私がしているとき
update_average_rateメソッドでは、「false」を出力しますが、comments_countが変更されます。私が間違っていることは何ですか?前もって感謝します
mysql - ファイルソートを防ぐために ORDER 条件を最適化するにはどうすればよいですか?
MySQL で条件によってクエリを並べ替える場合、ファイルソートを回避するにはどうすればよいですか?
has_videos
カウントだけでなくブール列もキャッシュした方がよいでしょうか?
ruby-on-rails - Rails counter_cache バランス
現在、ユーザーの残高を計算しています
すべてのユーザーの預金を差し引き、すべての購入を差し引くクエリを実行しています。何千ものトランザクションがある場合、これはうまくスケーリングしません。ユーザーの残高を計算する最良の方法は何ですか? ユーザーごとにこれを計算するように counter_cache をカスタマイズする方法はありますか?
ruby-on-rails - Railsカウンターキャッシュが本番環境で機能していません
Rails 3.1.4(ruby 1.8.7)のカウンターキャッシュメカニズムに奇妙な問題があります。開発サーバーでアプリを実行しているときは、すべてがうまく機能します。本番環境に切り替えた後、comments_count列は、コメントを1つだけ追加するたびに+2ずつ増加します。
ログを調べたところ、増分クエリが2回表示されました。
私はこの一日を直そうとしていますが、何が悪いのかわかりません。開発モードでは、すべてが正常に機能します。Rails2からのアップグレード後に問題が発生しました。
cakephp - Cakephp hasAndBelongsToMany とカウンターキャッシュ?
HABTM セットアップでカウンターキャッシュを動作させる方法を知っている人はいますか?
ruby-on-rails - :counter_cache => 合計を格納する場合は true
私はテーブルusers
とを持っていますscores
。協会は次のとおりです。
テーブルusers
には という列がありますscores_count
。この列には、テーブル内のすべての値の合計を格納しますscores
。
scores
列にすべての合計を格納するためにこの方法を使用したかったscores_count: :counter_cache => true
ただし:counter_cache => true
、テーブルの行数のみを保存しますscores
。テーブルのすべての値の合計を格納する同様の方法はありますscores
か? または、このタスクは自分で実装する必要がありますか?