我的Rails应用程序中有两个数据库,教师和教室。教室里有很多老师,老师也属于教室。对于每个课堂,我都有一个“教师数量”字段,应该跟踪分配给特定教室的教师数量,我想这样做的方式是每次向教师添加新教师时,“教师在教室中的计数器在单击提交按钮时更新为1。我现在已经看了一会儿,虽然看起来很简单,但似乎无法找到解决方案。谢谢你的帮助!
答案 0 :(得分:0)
对于像以下这样简单的事情看似很多工作:
classroom = Classroom.find_by(id: classroom_id)
var number_of_teachers = classroom.teachers.count
如果您已经很好地定义了模型及其关系,那么您就不需要特定的领域来了解每个教室的教师数量。
答案 1 :(得分:0)
在rails中,我们有一个计数器缓存的概念,你应该看一下这个概念 请检查链接 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
您要做的第一件事是将teacher_count列添加到Classroom模型(教室表)
然后,当您为教室添加或删除教师时,计数器缓存将自动更新计数