4

私のコードは次のようになります:

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)

この問題を回避するには、どのようにコードを記述すればよいですか?

4

1 に答える 1

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)
于 2013-09-19T20:25:14.407 に答える