Kyl*_*cot 2 ruby validation ruby-on-rails sidekiq
我有一个模型,它具有唯一性验证,如:
class CurriculumRequirement < ActiveRecord::Base
belongs_to :student
belongs_to :curriculum_sequence
validates :student_id,
uniqueness: { scope: [:curriculum_sequence_id] }
end
Run Code Online (Sandbox Code Playgroud)
问题是,尽管有这样的验证,但不知何故,重复的记录被插入到我的数据库中.在sidekiq后台工作程序中添加这些记录的位置:
student.curriculum_requirements.where(curriculum_sequence: sequence).first_or_create
我认为发生的事情是2个或更多工作人员正在执行相同的代码并保存记录.有没有办法在这个记录上放一个锁或什么东西,这样我就不会重复了?
| 归档时间: |
|
| 查看次数: |
802 次 |
| 最近记录: |