TypeError:预期的数字

Sow*_*M R 5 postgresql ruby-on-rails

我有一个名字的模型job.

我想计算自job创建以来的天数.

我认为,我们要计算的差异之间Date.todayjobs created_at

我的方法是:

def self.open_jobs(date)
    Date.today - where("status='open' AND date(created_at) = ?",date).round
end
Run Code Online (Sandbox Code Playgroud)

我收到一些错误请告诉我如何计算作业创建的天数.

我必须计算天数.例如,我在2012年第20季度创建了一份工作.它应该是Date.today - 20/09/2013答案应该是5天还有一件事我需要检查一个列状态="打开"并只显示那些工作.

如果有人知道如何计算请在这里发布.

Max*_*nus 13

job.created_at是一个Time,Date.today是一个Date

你不能减去TimeDate.看到那Date.tomorrow - Time.now会给你那个错误.

要在几秒钟内获得差异:

Time.now - job.created_at
Run Code Online (Sandbox Code Playgroud)

您可以将此转换为days(float或integer),如下所示:

(Time.now - job.created_at) / 24.hours
((Time.now - job.created_at) / 24.hours).to_i
Run Code Online (Sandbox Code Playgroud)

或者有(MyGod的回答):

Date.today.mjd - job.created_at.to_date.mjd
Run Code Online (Sandbox Code Playgroud)


dax*_*dax 1

你是对的,你应该使用Date.todayjob.created_at

如果您想计算自创建作业以来的天数,请使用以下命令:

def job_for_days
  (Date.today - self.created_at).round(1.day)
end
Run Code Online (Sandbox Code Playgroud)