类型错误:无法转换成一个确切的数字

问题描述:

我排队运行包含此范围的方法的DelayedJob:类型错误:无法转换成一个确切的数字

scope :before, lambda {|time| {:conditions => ["created_at >= ? AND updated_at <= ?", Time.now.utc - 86400 * 14, Time.now.utc - time] }} 

但在运行作业时,我得到这个错误:

Class#update_all_numbers failed with TypeError: can't convert Delayed::Backend::ActiveRecord::Job into an exact number 

范围内的time变量只是一个整数(如300),但由于某种原因,它会抛出错误。如果我删除- time或只是在那里输入一个静态数字,它运行良好。

+0

您是否尝试过'time.to_i'替代原料算术? –

+0

我试过'time.to_i',但仍然得到相同的错误。 – Shpigford

你可以尝试通过

Date.today - 14.days 
+0

这部分不是问题(请参阅我的最后一段)。 – Shpigford