我想驗證我的日期(裏面居然有DATE型)模型。所以,我嘗試寫這個simle方法並通過驗證來運行它。的Rails 3 - 自定義的驗證檢查日期類型
Teacher
class Teacher < ActiveRecord::Base
attr_accessible :teacher_birthday # DATE type!
belongs_to :user
validates :teacher_birthday, :presence => true,
:unless => :date_is_correct?
########
def date_is_correct?
parsed_data = Date._parse(:teacher_birthday)
input_day = parsed_data[:mday]
input_month = parsed_data[:mon]
input_year = parsed_data[:year]
correct_days = 1..31
correct_months = 1..12
correct_year = 1900..2000
if (correct_days.member? input_day) and (correct_months.member? input_month) and
(correct_year.member? input_year)
true
else
errors.add(:teacher_birthday, 'date is invalid')
false
end
end
當我運行rspec很多測試失敗。
TypeError: can't convert Symbol into String
# ./app/models/teacher.rb:56:in `_parse'
# ./app/models/teacher.rb:56:in `date_is_correct?'
我想我做錯了什麼。有人能告訴我什麼是錯的嗎?
什麼是失敗的消息? – awendt 2012-03-13 16:25:01
你爲什麼想到'Date._parse(:teacher_birthday)'工作? – 2012-03-13 16:54:38
爲什麼不呢?請推薦我更好的方法,請! – ExiRe 2012-03-13 17:07:53