如何在调用方法

时间:2015-08-24 04:19:45

标签: ruby-on-rails arrays ruby

我试图从两个数组中减去最早的日期:

def days_pending
  start = [object.created_at]
  finish = [Time.now.strftime('%Y-%m-%d')]
  if object.app_sign_date
    start.push(object.app_sign_date)
  end
  if object.submitted_date
    start.push(object.submitted_date)
  end
  if object.inforce_date
    finish.push(object.inforce_date)
  end
  if object.closed_date
    finish.push(object.closed_date)
  end
  finish.min - start.min

我在数组上调用min没问题,但在调用min方法然后减去时遇到问题。我得到NoMethodError: undefined method - ' for" 2015-01-01":String`。

3 个答案:

答案 0 :(得分:2)

数组finish的第一个元素是字符串而不是日期。你需要添加适当的对象,即。日期或日期时间

finish = [Time.now] 

finish = [DateTime.now]

答案 1 :(得分:0)

调用Time.now.strftime('%Y-%m-%d')后,你得到的是一个字符串。 更改为Time.now应该有效。

答案 2 :(得分:0)

如果您需要输出格式为" 2015-01-01"你可以使用解析:

Time.parse(finish.min) - start.min