在比较铁轨上红宝石的日期时,我陷入了奇怪的问题。
这是我想要做的。我已经解析了一个文件,并在变量@timeinFile
中选择了一个日期。我将此值与created_at
的{{1}}进行比较。这是代码:
User
当我单独评论if语句和粘贴值时,我得到以下输出
@date=User.last.created_at
@arr.each do |i|
j=i.partition('(')[2]
@timeinFile=j.partition(')')[0].to_datetime
if @date < @timeinFile #Error: undefined method `to_datetime' for nil:NilClass
@val='true'
end
end
任何人都告诉我我做错了什么。
修改
<p> <%= @date %> </p> ----------> 2013-08-05 09:16:33 UTC
<p><%= @timeinFile.to_time %></p> -------------> 2012-10-02 12:00:00 UTC
这是我在@arr中获得的那条线。下一步是使用<a href="http://www.cpsc.gov/en/Recalls/2013/Fitness-Anywhere-Recalls-Early-Model-Suspension-Trainer-Devices-Due-to-Fall-Hazard/" target="_blank">Fitness Anywhere Recalls Early Model Suspension Trainer Devices Due to Fall Hazard</a> (Tue, 02 Oct 2012 12:00:00 GMT) Fitness Anywhere has received 570 reports of the strap length adjustment buckles breaking with 13 reports of injuries. TRX suspension trainers sold from 2006 through 2009. </p> </body> </html>
进行分区,然后使用(
进行分区以获得圆括号中的日期...
答案 0 :(得分:3)
那么,为什么在代码中使用@timeinFile
并在测试中使用@timeonsite
?
#Error: undefined method `to_datetime' for nil:NilClass
基本上意味着你在nil
对象上调用一个方法,我觉得错误是在if
语句之前的行上触发的。
进行此项检查会发生什么?
unless j.partition(')')[0].nil?
@timeinFile=j.partition(')')[0].to_datetime
else
@timeinFile = DateTime.now
end
如果它没有给您错误,您可以去找出该值为nil
的原因。