我想验证我的日期(里面居然有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