我的代码如下:
if f.thisyear.blank? && Date.new(Date.today.year, f.birthday.month, f.birthday.mday ).valid_date?
f.update_attribute :thisyear, Date.new(Date.today.year, f.birthday.month, f.birthday.mday )
end
在第一行中,我使用以下方法检查有效日期:
Date.new(Date.today.year, f.birthday.month, f.birthday.mday ).valid_date?
这会引发错误:
`new': invalid date (ArgumentError)
如何编写代码以避免此问题?
答案 0 :(得分:13)
Date::valid_date?
是类方法,因此不是
Date.new(Date.today.year, f.birthday.month, f.birthday.mday).valid_date?
使用
Date.valid_date?(Date.today.year, f.birthday.month, f.birthday.mday)