問題タブ [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_cache カラムでフィクスチャを書く
counter_cache 列を持つフィクスチャを記述するのは面倒で複雑です。test_helper.rb でメソッド reset_counters を使用しようとしましたが、うまくいきませんでした。それを機能させるのと同じ方法ですか?
ruby-on-rails - Mongoid 3.1.6 の未定義のメソッド `reset_counters'
mongoid をバージョン 3.1.6 に更新したところ、reset_countersメソッドを使用してモデルの関係を追跡できるようになりました。しかし、gem の更新前と同じように、まだこのエラーが発生します。
私の Gemfile には、次のバージョンがあります。
また、Gemfile.lock は次のように述べています。
カウンターを更新するモデルは次のとおりです。
そして、カウンターフィールドがあるモデルは次のとおりです。
ruby-on-rails - Rails:counter_cacheをインクリメントする方法は?
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::
::: 解決済み :::
Vote モデルで counter_cache を見つけ出し、トピックで使用することができました。以下の質問を更新しました。Topic モデルに votes_count が設定されたら、それをビューに入れ、コントローラーでカウントを更新するだけで済みました。かなりシンプルになりました。しかし、情報を見つけることはそうではなかったので、これは他の人を助けるはずです。答えを求めて下に行きます。
乾杯
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::
:::編集:::
:::歴史については以下を参照してください:::
これは元の投稿の編集です。gem ソリューションを試す前に、私は自分が持っているものに本当に近づいています。投票モデルでcomment_cacheを使用しましたが、キャッシュをインクリメントする方法がわかりません。
ビューで topic.votes.size を呼び出すと、アクティブ レコードの列挙なしでカウントが表示されるようになりました。
index.html.erb
しかし、comment_cache は負の数を許可しません。カウントに数値を加算および減算するのではなく、レコードに対して作成/破棄を引き続き使用しています。増減する方法は?これらのメソッドは、値が欠落していると言っています。現在、@topic.votes.last.destroy が失敗するのは理にかなっています。破棄する票がこれ以上ないため、集計がゼロ未満になることはありません。
負の数が可能になるように comment_cache 値をインクリメント/デクリメントするように設定するにはどうすればよいですか? @topic.votes.increment と @topic.votes.increment_counter を試しましたが、何を使用すればよいかわからない 2 つのパラメーターが要求されます。試した
@topic.increment_counter(:votes_count, params[:id])
しかし運がない。
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::
:::この行の下の歴史:::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::
Rails をもう一度見直して、トピックに関する簡単な投票カウンターを作ろうとしています。私がやりたいことは、投票レコードの集計 (整数) 列をインクリメント/デクリメントすることです。
トピックには has_may :votes、および Vote belongs_to :topic
私が使用したtopics_controller.rbで
しかし、ビューの値ではなく、投票数ではなく、興味深い ActiveRecord キーを取得します。
index.html.erb:
インクリメントは表示されませんが、Rails Consoleから:
私はroutes.rbをうまくセットアップしたと思いますが、ダブルはよくわかりません
とにかく、インクリメントする方法が間違っているか、何かが足りないと思います。どんな助けでも感謝します。乾杯
ruby-on-rails - Rails 4: has_many の counter_cache :dependent との関連付けを介して: :destroy
同様の質問がすでに尋ねられていますが:
実際に私の問題に対処するものはありません。
has_many :through Association を持つ 3 つのモデルがあります。
結合管理モデルには、次の属性があります。
それぞれが何個持っているか、それぞれが何calendars
個持っているかを数えたいと思います。user
users
calendar
次のように counter_cache を使用するつもりでした。
(そしてもちろん、対応するマイグレーションをテーブルとテーブルに追加します:count_of_calendars
。)users
:count_of_users
calendars
しかし、その後、Rails Guides で次の警告に出くわしました。
4.1.2.4 :依存
:dependent オプションを次のように設定した場合:
- :destroy、オブジェクトが破棄されると、関連付けられたオブジェクトに対して destroy が呼び出されます。
- :delete、オブジェクトが破棄されると、関連するすべてのオブジェクトが、destroy メソッドを呼び出さずにデータベースから直接削除されます。
このオプションは、他のクラスの has_many アソシエーションに接続されている属しているアソシエーションでは指定しないでください。これを行うと、データベース内のレコードが孤立する可能性があります。
したがって、それぞれが持っている数と、calendars
それぞれuser
が持っている数を数える良い習慣は何でしょうか?users
calendar
cakephp - CakePHP 3: BelongsToMany を使用した CounterCache
関連付けがありBelongsToMany
、テーブルはPostsTable
とです。TagsTable
PostsTagsTable
ここで CakePHP の本 (関連)で説明されているように、次のフィールドがあります。
今のところ、すべてが正しく機能しています。tags.post_count
ですから、おわかりのように、フィールドを で使用したいと思いますCounterCache
。
私はCakePHP の本に従いましたが、これは特殊なケースだと思いますPostsTable
。
手伝って頂けますか?ありがとう。
ruby-on-rails - Rails と楽観的ロック: 関連付けを介してオブジェクトを作成すると、DB のロック バージョンが変更されますが、Ruby オブジェクトでは変更されません。
私のプロジェクトには定型文のコピーがたくさんあります。
私は次の仕様を持っています:
失敗します:
関連付けられたオブジェクトが作成されると、DB で lock_version フィールドが更新されることがわかりましたが、ruby オブジェクトはこれを認識しません。したがって、を追加するproject.reload
と、仕様は次のようになります。
この動作は予期されたものですか? カウンターキャッシュと関係がありますか?
ruby-on-rails - Rails 4カウンターキャッシュが同期していません
belongs_to :my_model, counter_cache: true
間違った値を設定しているカウンター キャッシュ (でセットアップ) を持つ Rails 4.2 アプリがあります。文字通り、コンソールを呼び出して呼び出しMyModel.associated_model_count
て取得20
し、次に呼び出しMyModel.associated_model.count
て取得することができ19
ます。モデルを保存しても、これは修正されません。
値は大きくずれているようには見えませんが、一部は明らかにずれており、その理由はわかりません。
ruby-on-rails-4 - Rails Counter Cache 同じモデルですか?
、model
Task
および各タスクhas_many
の他のタスクがあります。
各タスクが持つ sub_tasks の数にカウンター キャッシュを追加できますか? どのように?