2016-07-28 7 views
0

私はRailsアプリケーションの教師と教室に2つのデータベースを持っています。教室には数多くの教師と教師が所属しています。各教室には、特定の教室に何人の教師が割り当てられているかを把握する必要のある「教師数」フィールドがあります。これは、新しい教師が教師に追加されるたびに「教室の教師カウンターは、送信ボタンをクリックすると1ずつ更新されます。私はしばらくの間見回してきましたが、単純なように見えるものの、これに対する解決策を見つけることができないようです。助けてくれてありがとう!別のデータベースにレコードを追加すると、Railsは別のDBカウンタフィールドを更新します

答えて

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

で発生するアップデートを必要とする理由、それはあります動作を停止します。 –

+0

私はまだかなり新しくなっていますので、私の他の質問は、追加された先生が特定の教室に属していることをどのように知っていますか?モデル間にセットアップする外来キーはありますか? –

+0

上記の例で1対多のリレーションシップを定義している場合は、名前がclassroom_idのteacherテーブルに外部キーを追加する必要があります。それから、レールがあなたのために他の作品をやります。 –

0

は、次のような単純なもののために多くの仕事だ:

classroom = Classroom.find_by(id: classroom_id) 
var number_of_teachers = classroom.teachers.count 

あなたもあなたのモデルとその関係を定義した場合、あなたはそれぞれの教師の数を知るために、特定のフィールドを必要としません教室。あなたがコンセプト を見なければならない、我々はカウンターキャッシュの概念を持っているレールに

+0

のための教師を追加または削除するとき、私はカウント数を表示するビューでテーブルを持っている私はあなたがた場合に関連するコンテンツとリンクを答えなければならないDB –

関連する問題