RubyOnRails中的时差

时间:2011-02-08 11:32:44

标签: ruby-on-rails

我想把时间从我发布到现在的那一刻开始。我在我的模型类中定义了一个方法:

class Post < ActiveRecord::Base
validates :comment , :presence => true

def time_past
 DateTime.now - self.created_at

end
end

这是错误:

IRB(主):001:0&GT; Post.first.time_past TypeError:预期的数字或日期     来自/usr/lib/ruby/1.8/date.rb:1252:in minus_without_duration' from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.3/lib/active_support/core_ext/date/calculations.rb:98:in - '     来自/home/badescuga/proiecte/soundplace/app/models/post.rb:5:in`time_past'     来自(irb):1

2 个答案:

答案 0 :(得分:3)

尝试使用self.created_at,而不是#{created_at}

答案 1 :(得分:3)

您可以使用此方法实现此目的。

def time_since_creation
  Time.now - created_at
end