問題タブ [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.
php - cakephpで-関連モデルをcounterCacheできますか?例:ユーザー->プロファイル
テーブルにフィールドがありmember_count
ますcountries
。
Profile
属するCountry
したがって、ユーザーがに保存を実行するときに、を更新し$this->User->Profile->save( $this->data)
たいと思います。counterCache
Country
可能?
ruby-on-rails - 作成前に関連付けが設定されていない場合、Rails ActiveRecord :counter_cache は更新されません。意図的?
私は :counter_cache => true を使用して belongs_to リレーションを実装しましたが、リレーションが最初の保存前に設定されていなかった場合、カウンター キャッシュが更新されないことに気付きました。
たとえば、会社に多くの従業員がいるとします。私が行った場合
カウンターは正しく更新されますが、そうすると
カウンターは変わらず。
詳細については、モデルは次のとおりです。
これを示す Rails コンソール セッションを次に示します。
ドキュメントには、オブジェクトが作成/破棄されたときにカウンターが増分/減分されると書かれていますが、有用であるためには更新も監視する必要があると考えていました。そうしないと、たとえば、従業員を会社間で異動させると、すぐにカウンターが完全にずれてしまいます。
これは予想される動作ですか?もしそうなら、その根拠は何ですか?そうでない場合、私は何か間違ったことをしていますか?Rails 3.0.5とRuby 1.9.2でこれを試しました
ありがとう!
ruby-on-rails - カウント列にいくつかの条件がある場合に Rails で counter_cache を使用する方法
ここにいくつかのコードがあります
今、メンバーに counter_cache を追加したいと思います。条件スキーマのため、メンバーではなくメンバーシップに counter_cache を追加できません。しかし、個人クラスはグループに属していません。多くのメンバーシップがあり、メンバーシップはグループに属しています。:counter_cache スキーマはどこに追加すればよいですか?
または、要件をどのように実装できますか:メンバーシップに counter_cache を追加します
どうも
ruby-on-rails-3 - 関連付けのいくつかのフィールドの合計を追跡する - 「sum_cache」
モデルに has_many 関連付けを持つテーブル 'orders' と 'items' があります。
アイテムは「数量」フィールドで構成され、注文は「quantity_sum」フィールドで構成され、関連付けられたアイテムの数量の合計を追跡します。
例:
新しいアイテムが追加/編集/削除されるたびに、注文の「quantity_sum」フィールドが自動的に更新されるようにする方法を探していました。現在、注文の「quantity_sum」フィールドを更新するために、Item で after_save メソッドを使用しています。
「after_save」以外にこれを行う適切な方法はありますか???
関連の数を追跡するための「counter_cache」と同様に、レールは関連内のいくつかのフィールドの合計を自動的に追跡することをサポートしていますか?
ありがとう
ruby-on-rails - 条件付きの counter_cache
コールバックを使用できることはわかっていますが、これは実現可能です。私は長い間検索を行いましたが、結果はありませんでした。これは私がうまくいくと思ったものです。
published_docs_count ではなく、documents_count を更新しているため、計画どおりに機能していません。
ruby-on-rails - counter_cacheで注文すると、最初にnilオブジェクトが返されますか?
アイテムモデルにowns_countcounter_cacheがあります。私がする時
、他の結果の前にnilであるオブジェクトを返します。私が行った場合
、 合ってます。
私は何をすべきですか?
ruby-on-rails - heroku で移行を実行する際の問題
これは、Rails でCounter Cache を作成しようとしたこの投稿Rails, data structure and performanceのフォローアップ です。デフォルトの 0 にならないように、列をデータベース内の既存のカウント値に更新することも追加しました。
開発環境で rake db:migrate を実行すると、実行に数時間かかりましたが、問題なく動作します。
しかし、heroku で移行を実行すると、次のエラーが発生します。
私はいくつかの異なることを試しましたが、この時点で迷っているようです。奇妙なことに、エラー メッセージは常にすぐに表示されるとは限らず、移行が実行されているかのように 10 ~ 20 分かかる場合があります。
ありがとう
更新:これが私の移行ファイルの内容です:
更新 2: これは、heroku を使用したステージング環境で動作しますが、本番環境では動作しません
いくつかの変更の後、移行コードは次のようになりました。
エラーは次のとおりです。
ruby-on-rails - has_many :through として 1 つのモデルで複数の counter_cache をトリガーする方法
Join モデルでポリモーフィックな 3 つのモデル (Allen、Bob、Chris) があります。結合モデルに接続する User モデル。
私の質問は、ユーザー モデルでボブ、クリス、アレンのカウンター キャッシュを記述する方法です。
または、ここで確認できます: https://gist.github.com/1350922
ruby-on-rails - Rails 3 と Rspec: カウンター キャッシュ列が 2 に更新されると予想される場合は 1
私はRspecを使って、多くのLikeを持つSolutionsという名前のモデルをテストしています。ソリューションは、いいねの数を保存します (counter_cache)。「likes_count」属性 (およびそれぞれの db フィールド) があります。
ソリューションに関連付けられた Like レコードを作成するとき、ソリューション属性 "likes_count" を nil から 1 に更新する必要があることを期待しています。コンソールでそれを行うと、機能します。
しかし、仕様を実行すると、コンソールで行うのと同じことを実行すると、「likes_count」フィールドが 2 回更新され、2 に設定されます。
(コンソールで)見てみましょう
仕様の結果を見てくださいNOT WORKING :
仕様は次のとおりです。
test.log を確認したところ、カウンタ キャッシュ列を更新する db クエリがテストで 2 回呼び出されていることがわかりました。
ruby-on-rails-3 - counter_cacheと同様に、計算された属性をRails 3にキャッシュするにはどうすればよいですか?
他のさまざまなモデルからのデータに基づいて計算された値である属性があります。
私はその値をキャッシュするための巧妙な方法を探していcounter_cache
ますが、値はカスタム関数を介して自動的に更新されます。モデルにはすでにカスタム関数があります。
依存データのいずれかが変更された場合は、この関数を呼び出す必要があります。助言がありますか?