我的Rails应用程序,教师和教室中有两个数据库。一个教室里有许多老师和一个老师属于一个教室。对于每个课堂,我都有一个“教师数量”的字段,应该记录有多少教师被分配到一个特定的教室,而我想要这样做的方式是,每当新教师被添加到教师时,“单击“提交”按钮后,“教室”中的“教师”计数器将更新为1。我已经环顾了一会儿,似乎无法找到解决办法,尽管看起来很简单。谢谢您的帮助!当添加记录到单独的数据库时,Rails会更新另一个数据库计数器字段
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
你必须做的第一件事就是加入教室模型的教师计数列(教室表格)
然后计数器缓存将自动更新计数当你添加或删除教室的老师
0
似乎如下面简单的东西很多工作:
classroom = Classroom.find_by(id: classroom_id)
var number_of_teachers = classroom.teachers.count
如果你已经明确定义你的模型和它们之间的关系,你并不需要特定的域得知老师为每个数课堂。
+0
我在视图中有一个表格显示计数的数量,这就是为什么我需要在数据库中发生更新 –
相关问题
- 1. MySql - 从一个数据库更新到另一个数据库
- 2. 将新记录从一个数据库复制到另一个数据库
- 3. 将用户ID字段添加到zend数据库记录器
- 4. 当服务器数据库更新时更新sqlite数据库
- 5. 更新数据库记录
- 6. 数据库设计:记录中单个字段的多个值
- 7. 在rails上更新数据库字段
- 8. 记录添加在数据库中未更新的表单中?
- 9. 仅当另一个表上的列被更新或新记录添加到另一个表时,才将记录插入到新的MySQL数据库表中?
- 10. rails添加到数据库
- 11. 控制器不会更改数据库记录计数
- 12. 无法添加记录到数据库
- 13. 如何将记录从一个数据库复制到另一个数据库?
- 14. 将记录从一个MySQL数据库传输到另一个数据库
- 15. 记录更改的字段/列的数据库更新
- 16. 如果在数据库中添加新记录,从数据库检索数据
- 17. 从viewmodel更新数据库,但也添加新的记录
- 18. 将mysql blob字段从一个数据库复制到另一个数据库
- 19. 用另一个数据库更新数据库
- 20. 将数据从一个数据库字段复制到另一个数据库字段
- 21. Rails 3:数据库列不会通过活动记录更新
- 22. 如何将表从一个数据库更新到另一个数据库?
- 23. 添加文件时更新数据库
- 24. 向GridView添加新记录,但不应更新数据库
- 25. Ruby on Rails的不添加记录到数据库
- 26. 复制数据从一个数据库表到另一个单独的数据库
- 27. 更新数据库记录在SqlLite数据库
- 28. 更新数据库中的记录
- 29. 数据库中的记录更新
- 30. 显示来自数据库的记录,然后添加新的记录时自动更新数据库中显示的记录与新记录
你应该回答相关内容,以防万一链接停止工作。 –
我对Rails还是比较陌生的,所以我的另一个问题是,该协会如何知道添加的教师属于特定的课堂?在模型之间是否需要设置外键? –
是的,如果您在上面的示例中定义了一对多关系,那么您需要在名称为classroom_id的教师表中添加一个外键。然后铁轨会为你做其他工作。 –