私はRailsアプリケーションの教師と教室に2つのデータベースを持っています。教室には数多くの教師と教師が所属しています。各教室には、特定の教室に何人の教師が割り当てられているかを把握する必要のある「教師数」フィールドがあります。これは、新しい教師が教師に追加されるたびに「教室の教師カウンターは、送信ボタンをクリックすると1ずつ更新されます。私はしばらくの間見回してきましたが、単純なように見えるものの、これに対する解決策を見つけることができないようです。助けてくれてありがとう!別のデータベースにレコードを追加すると、Railsは別のDBカウンタフィールドを更新します
0
A
答えて
0
あなたがしなければならないリンクをチェックしてください http://yerb.net/blog/2014/03/13/three-easy-steps-to-using-counter-caches-in-rails/
モデル
class Classrooms < ActiveRecord::Base
has_many :teachers
end
class Teachers < ActiveRecord::Base
belongs_to :classroom, :counter_cache => true
end
最初に追加されます教室モデル(教室テーブル)
にteachers_count列が続いてカウンタキャッシュは自動的に数を更新しますあなたが教室
0
は、次のような単純なもののために多くの仕事だ:
classroom = Classroom.find_by(id: classroom_id)
var number_of_teachers = classroom.teachers.count
あなたもあなたのモデルとその関係を定義した場合、あなたはそれぞれの教師の数を知るために、特定のフィールドを必要としません教室。あなたがコンセプト を見なければならない、我々はカウンターキャッシュの概念を持っているレールに
+0
のための教師を追加または削除するとき、私はカウント数を表示するビューでテーブルを持っている私はあなたがた場合に関連するコンテンツとリンクを答えなければならないDB –
関連する問題
- 1. mysqlの別のテーブルからカウンタフィールドを更新する方法
- 2. 新しいレコードを変更してAccessデータベースに追加する
- 3. 別のデータベースを追加するには、別のデータベースを追加するには、質問です
- 4. RailsとHeroku:データベースにレコードを追加する方法は?
- 5. DBから別のデータベースにスキーマを追加
- 6. Railsは別の変数に変数を追加します
- 7. Angularjs編集して更新し、別のデータを追加する
- 8. 別のデータベースのテーブルを更新する
- 9. 別のDBコレクション内の別のDBコレクションforeachメソッドを更新する
- 10. DynamoDB - 別のマップオブジェクトを追加してマップオブジェクトを更新する
- 11. Entity Framework 6は、既存のレコードを別のレコードの値で更新します。
- 12. MYSQL DBに加えられた変更を保存し、別のサーバー上の別のMYSQLデータベースへの変更を更新する
- 13. Firebase - 追加のユーザデータを別のDBに追加
- 14. Railsは別のフィールドでフィールドを更新します
- 15. Railsデータベース内のすべてのレコードを更新する
- 16. SQLの更新フィールドdb内の別のデータベースのダブルルックアップ
- 17. データベースを作成する別のスプレッドシートにデータを追加する方法と、別の更新/上書きを行う方法はありますか?
- 18. MongoDBすべてのレコードに新しい/更新フィールドタイムスタンプを追加
- 19. Rails:別の要素に追加するときの生の( '')
- 20. 別の日付で2レコードを更新しますか?
- 21. レコードを更新するときにジャンクション・テーブルにレコードを追加する
- 22. Node.js saveイベントのdbオブジェクトを別のオブジェクトに更新する
- 23. SQL Serverの数値フィールドを追加し、別のフィールドを更新しますか?
- 24. マルチプルテキストボックス入力を新しいレコードとしてSQLデータベースに追加
- 25. URLからデータベースにレコードを追加するRailsメソッド
- 26. Rails 3.1のテーブルに新しいレコードを追加するメソッドを作成する
- 27. Railsの移行別のテーブルにエントリを作成中に既存のレコードを更新します
- 28. 他のデータベースが更新されたときに別のmysqlデータベースに接続してデータベーステーブルを更新する
- 29. 別のdivの後に新しいdivを追加する
- 30. Ruby on Rails:フォーム上に別のモデルのフォームを追加する
で発生するアップデートを必要とする理由、それはあります動作を停止します。 –
私はまだかなり新しくなっていますので、私の他の質問は、追加された先生が特定の教室に属していることをどのように知っていますか?モデル間にセットアップする外来キーはありますか? –
上記の例で1対多のリレーションシップを定義している場合は、名前がclassroom_idのteacherテーブルに外部キーを追加する必要があります。それから、レールがあなたのために他の作品をやります。 –