【发布时间】:2021-09-10 05:19:56
【问题描述】:
class Defect < ApplicationRecord
has_many :work_orders, dependent: :destroy
end
class WorkOrder < ApplicationRecord
belongs_to :defect
before_save :default_values
def default_values
self.running_number = self.defect.work_orders.maximum(:running_number).to_i + 1 if self.new_record?
end
end
理想情况下,代码是这样工作的
Defect A
- Work Order running_number 1
- Work Order running_number 2
- Work Order running_number 3
Defect B
- Work Order running_number 1
- Work Order running_number 2
- Work Order running_number 3
但是,当多个用户同时保存属于同一缺陷的不同 WorkOrder 对象时,running_number 将变得混乱,因为 maximum_running_number 仅基于保存的数据。 如何让 running_number 正确保存?
【问题讨论】:
标签: ruby ruby-on-rails-5