参数错误:日期无效

时间:2014-11-13 21:50:08

标签: ruby-on-rails ruby argument-error

这个错误可能是什么?我在我的帐户模型中定义了一个年龄:

def age
    birthday = DateTime.new(year_Of_Birth.to_i, month_Of_Birth.to_i, day_Of_Birth.to_i)
    self.age = ((DateTime.now - birthday) / 365.25).to_i
  end

在我看来,我收到以下错误:

ArgumentError - 以下行中的日期无效:

<dd><%= @account.age %></dd>

提前致谢。

2 个答案:

答案 0 :(得分:1)

尝试在您的Rails应用控制台中进行测试:

birthday = DateTime.new(1991,4,2)       => Tue, 02 Apr 1991 00:00:00 +0000
DateTime.now - birthday                 => (149073456141953/17280000000)
(DateTime.now - birthday)/365.25        => 23.61926437561592
((DateTime.now - birtday)/365.25).to_i  => 23

这对我有用。检查您正在设置的参数。

答案 1 :(得分:1)

我几乎可以肯定你传递的论点(year_Of_Birth.to_i,month_Of_Birth.to_i,day_Of_Birth.to_i)有什么问题,调试它们并向我们展示价值观,或者如果你想要你可以试试这个来捕捉一些特定的错误:

begin
 birthday = DateTime.new(year_Of_Birth.to_i, month_Of_Birth.to_i, day_Of_Birth.to_i)
 self.age = ((DateTime.now - birthday) / 365.25).to_i
rescue ArgumentError
 #your logic
end