作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
好吧,假设我有 2 个不同的模型:
因此,一次投票可以有很多票。目前,我正在显示所有民意调查的列表,包括其总体投票数。
@poll = Poll.update(params[:poll_id], :vote_count => vote_count+1)
@poll.vote_count
效果很好。
@vote_count = Poll.find(params[:poll_id] ).votes.count
感谢您的帮助!
最佳答案
您是否考虑过使用 counter cache (see counter_cache option) ? Rails 具有此内置功能来处理关联的所有可能更新以及这将如何影响计数器。
就像在一对多边的表上添加一个名为 #{attribute.pluralize}_count
(在你的例子中是 votes_count
)的 0 初始化整数列一样简单一个协会(在你的例子中是民意调查)。
然后在关联的另一端将 :counter_cache => true
参数添加到 belongs to 语句。
belongs_to :poll, :counter_cache => true
现在这并不能准确回答您的问题,正确答案将取决于您的数据形状和您配置的索引。如果您希望您的投票表数以百万计,分布在数千个民意调查中,那么请使用计数器缓存,否则只需计算关联就可以了。
关于ruby - Rails 3 - ActiveRecord,什么更有效率(更新与计数)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7299410/
我是一名优秀的程序员,十分优秀!