Ruby on rails 在RubyonRails中比较日期
我在RubyonRails中比较日期时遇到了一个奇怪的问题 这就是我要做的。我已经解析了一个文件并选择了一个日期作为变量Ruby on rails 在RubyonRails中比较日期,ruby-on-rails,ruby,Ruby On Rails,Ruby,我在RubyonRails中比较日期时遇到了一个奇怪的问题 这就是我要做的。我已经解析了一个文件并选择了一个日期作为变量@timeinfle。我正在将此值与我的用户在创建的进行比较。代码如下: @date=User.last.created_at @arr.each do |i| j=i.partition('(')[2] @timeinFile=j.partition(')')[0].to_datetime if @date < @timeinFile
@timeinfle
。我正在将此值与我的用户
在创建的进行比较。代码如下:
@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
@date=User.last.created\u位于
@每个人都有自己的想法
j=i.分区('(')[2]
@timeinfle=j.partition(')[0]。到_datetime
如果@date<@timeinfle#错误:未定义nil:NilClass的方法“to_datetime”
@val='true'
结束
结束
当我分别注释if语句和粘贴值时,我得到以下输出
<p> <%= @date %> </p> ----------> 2013-08-05 09:16:33 UTC
<p><%= @timeinFile.to_time %></p> -------------> 2012-10-02 12:00:00 UTC
-->2013-08-05 09:16:33 UTC
------>2012-10-02 12:00:00 UTC
任何人都可以告诉我我做错了什么
编辑
<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>
(周二,2012年10月2日12:00:00格林威治标准时间)Fitness Anywhere收到570份皮带长度调节扣断裂报告,13份受伤报告。TRX悬挂训练器从2006年到2009年销售
这是我在@arr中得到的一行。下一步是用(
然后用)
分区,以圆括号中的日期…那么,为什么在代码中使用@timeinfle
,在测试中使用@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
那么,为什么你要在代码中使用@timeinfle
,在测试中使用@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
你确定错误点与比较一致吗?当你得到错误时,查看@arr
的内容会很有用。@MarekLipka yep它指向同一行:(@arr.compact.each
你能试试这个吗我想@arr中包含一些nil
values@NeilSlater检查我对原始帖子所做的编辑。我在我粘贴的语句中发现错误。您是否确定错误点与比较一致?当您发现错误时,查看@arr
的内容会很有用@是的,它指向同一条线:(@arr.compact.each
你能试试这个吗我想@arr中包含一些nil
values@NeilSlater检查我对原始帖子所做的编辑。我粘贴的声明有错误。p,感谢编辑@Misha,今天早上我的打字很不稳定。是的,感谢编辑@Misha,今天早上我的打字很不稳定非常不稳定。