如何驗證具有自定義或虛擬作用域的屬性的唯一性?我想過使用虛擬屬性,但它一直試圖在數據庫中查詢audit_year。我寧願不爲此唯一性約束創建另一個數據庫列。如何驗證虛擬屬性範圍上的Rails模型屬性唯一性
每個位置每年只能安排一次審計,所以我需要從計劃屬性中提取年份並驗證該範圍內的唯一性。
class Audit
attr_accessible :location_name, :scheduled_date, :completion_date ...
validates :location_name, :presence => true, :uniqueness => { :scope => :audit_year }
...
def audit_year
scheduled_date.year
end
end
我甚至可能沒有在我的虛擬屬性嘗試正確的路徑。什麼是在軌道上做到這一點的「正確」方式?