我正在尝试确定以下是否会被视为线程安全代码。
我的模型session_detail
有四列cost
字段,room_fee
字段和tip
字段(百分比)和total_cost
领域。
cost
费用,room
费用均为静态费用。 tip
字段为空白或不更改的值。保存后,total_cost
字段始终会重新计算。
这个线程安全吗?是应该将其移入自己的实例方法并调用对象?是否应该在保存之前更改为?
class SessionDetail < ActiveRecord::Base
after_save :update_cost
def update_cost
total_cost = self.room_fee.to_f + (self.cost.to_f * (1 + self.tip.to_f))
self.update_attribute(:total_cost, total_cost.round(2))
end