比较铁轨上红宝石的日期

时间:2013-08-27 07:46:05

标签: ruby-on-rails ruby

在比较铁轨上红宝石的日期时,我陷入了奇怪的问题。

这是我想要做的。我已经解析了一个文件,并在变量@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> 进行分区,然后使用(进行分区以获得圆括号中的日期...

1 个答案:

答案 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的原因。