这个错误可能是关于什么的?我正在我的帐户模型中定义年龄:
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
在我看来,我得到以下错误:
参数错误 - 以下行中的日期无效:
<dd><%= @account.age %></dd>
提前谢谢。
尝试在 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
这对我有用。检查您正在设置的参数。
我几乎可以肯定你传递的参数(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