我有一個預約模式,採取預約屬性作爲date
並具有虛擬屬性duration
指示任命需要多長時間。真正的屬性,booking_end
採取即都在我的應用程序引用的時間。但是,爲了便於輸入,我們使用的持續時間,而不是選擇其他Time
的。這些字段是如下:如何在保存前引用屬性?
def duration
((booking_end - date)/1.hour).round(2) rescue nil
end
def duration=(temp)
if (true if Float(temp) rescue false)
self.booking_end = time_round(date + temp.to_f.hours, 15.minutes)
else
errors.add(:duration, "must be a number, stated in hours.")
self.booking_end = nil
end
end
當我引用date
場,同時創造了新的記錄整個事情失敗。由於日期尚未初始化,我得到'無'錯誤。我該如何解決這個問題?當更新現有記錄時,其餘部分工作。
什麼樣的價值應該在'date'屬性默認爲? – 2010-11-17 02:21:20
它在視圖中默認爲將來的日期和時間。目前,驗證檢查它是有效日期而不是無。 – Nuby 2010-11-17 02:32:18