我的Rails应用程序中有两个数据库,教师和教室。一个教室has_many老师和一个老师belongs_to教室。对于每个教室,我都有一个“教师数量”字段,该字段应该跟踪分配到特定教室的教师人数,而我希望这样做的方式是,每次向教师中添加一名新教师时,在教室中的“教师人数”计数器将在单击submit按钮后通过1更新。我环顾四周已经有一段时间了,虽然看起来很简单,但似乎找不到解决办法。谢谢你的帮助!
发布于 2016-07-28 15:31:47
在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您必须做的第一件事是在教室模型(教室表)中添加一个teachers_count列。
然后,计数器缓存将在您为教室添加或删除教师时自动更新计数。
发布于 2016-07-28 15:30:21
对于下面这样简单的事情,似乎有很多工作要做:
classroom = Classroom.find_by(id: classroom_id)
var number_of_teachers = classroom.teachers.count如果你已经很好地定义了你的模型和它们之间的关系,你就不需要特定的领域来知道每个教室的教师人数。
https://stackoverflow.com/questions/38640551
复制相似问题