我很難搞清楚如何在這種情況下解決競爭條件。Rails競賽條件唯一性十字路口日期
我使用的軌道3.2.11與活動記錄
我有模型:(只是一個例子)
class Task < ActiveRecord::Base
belongs_to :person
attr_accessible :start_date, :end_date, :person_id
end
class Person < ActiveRecord::Base
has_many :tasks
end
的問題是:
我要確保一個人僅在該間隔之間分配1個任務(start_date
和end_date
)
例如,
Task | Person_id | start_date | end_date
0 1 01-01-01 10:00 01-01-01 11:00
1 1 01-01-01 10:15 01-01-01 10:45 ## this should no be valid!!
我知道,在Rails的驗證不會阻止,因爲競爭條件這一點,因爲我不想讓unique => true
而是某種unique_in_interval => true
有人可以解釋如何做到這一點?
在此先感謝。