我目前正在通過has_one關聯(設備有一項保修,保修屬於設備)對設備進行保修的項目。除了事實上,我的一位同事向我建議在device_warranty的device_warranty_ends屬性上添加一個存在驗證,以確保至少此字段在設備有保修時已填充,否則一切正常。Rails has_one的驗證並屬於協會
但是,問題是,現在,你不能創建一個沒有保修的設備,這顯然不是一個真實的生活情況,因爲設備可以自然存在沒有保修。所以,我的問題是,只有當device_warranty連接到設備時,我如何才能驗證device_warranty_ends。
換句話說,創建一個設備不應該關心擔保,除非有人實際上對設備附加保修(通過填寫字段),然後只有我應該檢查device_warranty_ends presence:true。
謝謝。
這裏是我當前的驗證代碼:
class DeviceWarranty < ActiveRecord::Base
belongs_to :device
validates :warranty_ends_at, presence: true
end
class Device < ActiveRecord::Base
has_one :device_warranty
分享您當前的驗證碼。 – cortex
@cortex添加了代碼 – rii