未定义的方法`strftime'为零:NilClass

问题描述:

我有一个变量:@delivery_time未定义的方法`strftime'为零:NilClass

当我这样做

o.delivery_time.strftime("%H:%M:%S") 

它给

undefined method `strftime' for nil:NilClass 

当我这样做:

debug o.delivery_time 

它提供:

--- 2000-01-01 11:00:00.000000000 Z ... 

此外,输出为:

o.delivery_time 

2000-01-01 11:00:00 UTC 

在这里,我想的时间仅即11点的值。所以尝试过srtftime,但它不起作用。

任何人都可以帮忙吗?

+0

表明,该方法'delievery_time'的身体。 – 2013-04-20 07:54:12

+0

@RubyLovely你的意思是这样吗?: 5.hours.from_now,:minute_step => 5,:ampm => true}%>,其中delivery_time的类型是'time '在数据库中。 – user2206724 2013-04-20 07:59:20

+0

尝试将数据库中的'时间'类型更改为'datetime' – neon 2013-04-20 08:06:47

这做了一个绝招:

o.delivery_time.to_formatted_s(:time) 

错字:delievery_time VS delivery_time

编辑试试这个:

o.try(:delivery_time).strftime("%H:%M:%S") 
+0

对不起,它是交付。错误的错字。编辑它。 – user2206724 2013-04-20 07:57:19

+1

“o.delivery_time.class”的输出是什么 – neon 2013-04-20 07:59:22

+0

对于某些字段,交货时间很短。可能是它显示错误的原因。 – user2206724 2013-04-20 08:21:00

试试这个:(:strftime,(" %m/%d/%Y %I:%M"))

我有同类问题和鳕鱼e帮助我显示字段“时间”的小时和分钟。

o.try(:delivery_time).try(:strftime, ("%H:%M")) 

我有同样的问题,解决了以这样的方式

o.delivery_time.strftime("%H:%M:%S") unless o.delivery_time.nil?