Ruby on rails rails应用程序中的计数器计数不正确--我应该使用增量吗?
我有一个Rails应用程序,具有以下型号:Ruby on rails rails应用程序中的计数器计数不正确--我应该使用增量吗?,ruby-on-rails,ruby,caching,Ruby On Rails,Ruby,Caching,我有一个Rails应用程序,具有以下型号: 项目(有许多任务) 任务(属于项目,有许多任务响应) 任务响应(属于任务) 例如,我可能有一个项目,让人们给一只动物拍照。我想让三个不同的人给每只动物拍照,所以拍一只蝴蝶的任务可能会有三种不同的任务反应 我希望跟踪已完成响应的总数,因此我有以下代码: class TaskResponse < ActiveRecord::Base belongs_to :task before_save :update_responses_compl
(有许多任务)项目
(属于项目,有许多任务响应)任务
(属于任务)任务响应
class TaskResponse < ActiveRecord::Base
belongs_to :task
before_save :update_responses_completed
before_save :update_responses_in_progress
# Statuses
IN_PROGRESS = 1
COMPLETED = 2
SKIPPED = 3
def update_responses_completed
ActiveRecord::Base.transaction do
if self.status == TaskResponse::COMPLETED && self.status_changed?
# Update task & project counters
self.task.num_responses_completed += 1
self.project.num_responses_completed += 1
self.task.save!
self.project.save!
end
end
end
end
你能在更新状态的地方发布代码吗?@Thomas Haratyk:添加了代码。当用户填写任务响应表单并提交时,状态就会更新。是否有理由存储数字而不是使用简单的计数?因为你必须处理各种状态更新和行删除等。。。。你关心性能吗?是的,出于性能原因,我存储了一个计数器,而不是每次都计数。(我经常打这些电话。)你能在更新状态的地方发布代码吗?@Thomas Haratyk:添加了代码。当用户填写任务响应表单并提交时,状态就会更新。是否有理由存储数字而不是使用简单的计数?因为你必须处理各种状态更新和行删除等。。。。你关心性能吗?是的,出于性能原因,我存储了一个计数器,而不是每次都计数。(我经常打这些电话。)你能在更新状态的地方发布代码吗?@Thomas Haratyk:添加了代码。当用户填写任务响应表单并提交时,状态就会更新。是否有理由存储数字而不是使用简单的计数?因为你必须处理各种状态更新和行删除等。。。。你关心性能吗?是的,出于性能原因,我存储了一个计数器,而不是每次都计数。(我经常打这些电话。)
class TaskResponsesController
def update
tr = TaskResponse.find(params[:id])
tr.update!(params)
tr.status = TaskResponse::COMPLETED
tr.save!
redirect_to(tr)
end
end