Rails在将记录添加到单独的DB时更新另一个DB计数器字段
Rails update another DB counter field when adding record to seperate DB
我的Rails应用程序中有两个数据库,Teachers和Classrooms。一个教室有许多老师,一个老师属于一个教室。对于每个教室,我都有一个"教师人数"字段,该字段应记录指定给特定教室的教师人数,我想这样做的方式是,每次向"教师"中添加新教师时,单击提交按钮后,"教室"中的"教师数"计数器将更新1。我四处寻找了一段时间,似乎找不到解决这个问题的方法,尽管它看起来很简单。谢谢你的帮助!
在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列添加到Classroom模型(教室表)中
然后,当您为课堂添加或删除教师时,计数器缓存将自动更新计数
对于以下这样简单的事情似乎需要做很多工作:
classroom = Classroom.find_by(id: classroom_id)
var number_of_teachers = classroom.teachers.count
如果你已经很好地定义了你的模型及其关系,你就不需要特定的领域来知道每个教室的教师人数。
相关文章:
- 如何在angularJS中编辑时,如果DB中的值为true,则设置复选框,如果值为false,则取消选中复选框
- Javascript循环不会自我更新
- 添加文字和评论功能更新Div
- AngularJS:ng之后,重复$scope值未按预期更新
- 如何通过数组更新角度子范围
- Ajax聊天消息重复而不仅仅是更新
- 通过CSV文件上载更新数据库表
- 使用rails中的ajax请求更新DB
- 无法运行php函数来使用document.write更新db值
- 将 PHP 数组项传递到 JavaScript 弹出窗口中,以便在 MySQL DB 中进行编辑和更新
- 使用jQuery循环+更新DB
- ajax返回成功,但mysql-db未更新
- Mongo DB更新已过期
- Javascript倒计时更新db和刷新
- 更新与输入相关联的DB值元素的值发生变化时
- YDN-DB -如何通过id更新记录
- MEAN App -在DB Collection更新后更新表
- 通过一个查询和条件重新思考db多次更新
- Rails在将记录添加到单独的DB时更新另一个DB计数器字段
- 每5分钟更新一次DB中的值