Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Ruby新手strftime时间,现在_Ruby On Rails_Ruby_Strftime - Fatal编程技术网

Ruby on rails Ruby新手strftime时间,现在

Ruby on rails Ruby新手strftime时间,现在,ruby-on-rails,ruby,strftime,Ruby On Rails,Ruby,Strftime,我用ruby写了以下内容 t = Time.now t.strftime("%Y-%d-%m") SCHEDULER.every '1m', :first_in => 0 do |job| send_event('gmail_gh', {current: gmail.inbox.count(:after => Date.parse(t)), older: gmail.inbox.count}) 但是我得到了这个错误 scheduler caught excepti

我用ruby写了以下内容

t = Time.now
    t.strftime("%Y-%d-%m")

SCHEDULER.every '1m', :first_in => 0 do |job|
  send_event('gmail_gh', {current: gmail.inbox.count(:after => Date.parse(t)), older: gmail.inbox.count})  
但是我得到了这个错误

scheduler caught exception:
can't convert Time into String
/var/dashing/cdmdash/jobs/gmail_gh.rb:21:in `parse'
/var/dashing/cdmdash/jobs/gmail_gh.rb:21:in `block in <top (required)>'
/usr/local/rvm/gems/ruby-1.9.3-p327/gems/rufus-scheduler-2.0.17/lib/rufus/sc/jobs.rb:231:in `call'
/usr/local/rvm/gems/ruby-1.9.3-p327/gems/rufus-scheduler-2.0.17/lib/rufus/sc/jobs.rb:231:in `trigger_block'
/usr/local/rvm/gems/ruby-1.9.3-p327/gems/rufus-scheduler-2.0.17/lib/rufus/sc/jobs.rb:191:in `block in trigger'
/usr/local/rvm/gems/ruby-1.9.3-p327/gems/rufus-scheduler-2.0.17/lib/rufus/sc/scheduler.rb:416:in `call'
/usr/local/rvm/gems/ruby-1.9.3-p327/gems/rufus-scheduler-2.0.17/lib/rufus/sc/scheduler.rb:416:in `block in trigger_job'
计划程序捕获到异常:
无法将时间转换为字符串
/var/dashing/cdmdash/jobs/gmail_gh.rb:21:in'parse'
/var/dashing/cdmdash/jobs/gmail_gh.rb:21:in'block in'
/usr/local/rvm/gems/ruby-1.9.3-p327/gems/rufus-scheduler-2.0.17/lib/rufus/sc/jobs.rb:231:in'call'
/usr/local/rvm/gems/ruby-1.9.3-p327/gems/rufus-scheduler-2.0.17/lib/rufus/sc/jobs.rb:231:in'trigger_block'
/usr/local/rvm/gems/ruby-1.9.3-p327/gems/rufus-scheduler-2.0.17/lib/rufus/sc/jobs.rb:191:在“触发器中的块”中
/usr/local/rvm/gems/ruby-1.9.3-p327/gems/rufus-scheduler-2.0.17/lib/rufus/sc/scheduler.rb:416:in'call'
/usr/local/rvm/gems/ruby-1.9.3-p327/gems/rufus-scheduler-2.0.17/lib/rufus/sc/scheduler.rb:416:在“触发器作业中的块”中

我认为这与t变量有关,并且它不是一个tru,我对Ruby是新手,所以我有点卡住了。如果你看一下gem文档,你会发现:after和:before参数以YYYY-MM-DD的格式包含一个日期

从创业板自述:

gmail.inbox.count(:after => Date.parse("2010-02-20"), :before => Date.parse("2010-03-20"))
gmail.inbox.count(:on => Date.parse("2010-04-15"))
您的代码正在传递YYYY-DD-MM,这可能导致错误

编辑

当您在datetime对象上调用strftime时,它不会修改该对象-只返回基于您给定格式的字符串表示法

因此,Date.parse(t)仍然是Time.now参数

试试这个:

t = Time.now.strftime("%Y-%m-%d")
Date.parse(t)

为此,我已将变量编辑为t.strftime(“%Y-%m-%d”),但仍然出现错误