2010-05-08 22 views
0

的使用情況很簡單。的Rails 2.3.5:如何處理這種類型的驗證

我允許用戶在需要在1和15之間的是成一種期滿字段中輸入。該模型獲取該數字並將其轉換爲日期時間(例如從今天起增加15天)並將其存儲在數據庫中。

什麼是實際驗證,雖然正確的方法是什麼?我是否根據持續存在於數據庫中的日期時間格式或用戶可通過表單選擇的選擇框(1..15)進行驗證?我希望能夠驗證用戶正在使用1..15 .. Rails 2.3.5中的ActiveRecord驗證如何完成?

如果我只是創建基於整數到期領域的attr_accessor和驗證對嗎?這樣做的乾淨方式是什麼?

回答

4

我想你有這樣的

attr_accessor :expiration_num 
before_save :convert_date 

def convert_date 
    self.expiration = self.expitration_num.days.since 
end 

代碼,以便只需添加一個驗證方法,像這樣:

validate :expiration_correctness 

def expiration_correctness 
    errors.add_to_base("Must be in 1-15") unless (1..15).include? self.expiration_num 
end 
+0

+1很好的答案。 – Salil 2010-05-08 16:23:43

+0

您可能剛剛使用validates_inclusion_of而不是expiration_correctness; convert_date應該檢查expiration_num是否爲空。 – vise 2010-05-09 09:53:44

相關問題