将日期从一个属性分配给其他属性导致无效日期错误

时间:2011-07-28 04:41:44

标签: ruby-on-rails-3 date

我将对象中的一个属性的日期分配给同一对象中的另一个属性。

我在保存对象之前将其作为回调

before_save:set_delivery,:on => :创建

def set_delivery

self.deliver_on = self.birthday.change(:year => Time.now.year)

两者都是sqlite3数据库中的Date类型。

这样可以将新信息写入数据库。但是,如果我在控制台或测试中尝试以下操作,则会失败

    @attr = {
             :bp_name       => "Example User",
             :birthday      => '1992-02-29',
             :template_id   => 1
              }

Board.create(@attr)

产生以下错误:

ArgumentError: invalid date

任何人都知道为什么或如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

这是因为您尝试更改的日期是bissextile。

这意味着以下日期2011-02-29不存在。

因此,您有以下例外:ArgumentError:无效日期