2016-07-28 73 views
0

我的Rails应用程序,教师和教室中有两个数据库。一个教室里有许多老师和一个老师属于一个教室。对于每个课堂,我都有一个“教师数量”的字段,应该记录有多少教师被分配到一个特定的教室,而我想要这样做的方式是,每当新教师被添加到教师时,“单击“提交”按钮后,“教室”中的“教师”计数器将更新为1。我已经环顾了一会儿,似乎无法找到解决办法,尽管看起来很简单。谢谢您的帮助!当添加记录到单独的数据库时,Rails会更新另一个数据库计数器字段

回答

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 

你必须做的第一件事就是加入教室模型的教师计数列(教室表格)

然后计数器缓存将自动更新计数当你添加或删除教室的老师

+0

你应该回答相关内容,以防万一链接停止工作。 –

+0

我对Rails还是比较陌生的,所以我的另一个问题是,该协会如何知道添加的教师属于特定的课堂?在模型之间是否需要设置外键? –

+0

是的,如果您在上面的示例中定义了一对多关系,那么您需要在名称为classroom_id的教师表中添加一个外键。然后铁轨会为你做其他工作。 –

0

似乎如下面简单的东西很多工作:

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

如果你已经明确定义你的模型和它们之间的关系,你并不需要特定的域得知老师为每个数课堂。

+0

我在视图中有一个表格显示计数的数量,这就是为什么我需要在数据库中发生更新 –

相关问题