如何在rails中的日期值之间进行一些计算?

时间:2011-03-24 02:33:03

标签: ruby-on-rails

鉴于我有article.created_at值,我想仅在created_at少于7天之前允许用户编辑文章。如果它是在7天前创建的,我不想让用户编辑文章。

我尝试使用

DateTime.now.to_i - article.created_at.to_i

但它只显示它们之间的时差,以秒为单位。当然,我可以使用秒来计算7天,但我想知道是否有更好的方法来做到这一点。 谢谢!

2 个答案:

答案 0 :(得分:3)

在文章模型中创建一个方法,以便从执行此类操作的控制器进行测试:

class Article < ActiveRecord::Base

  def editable?
    self.created_at > 7.days.ago
  end

end

然后回到控制器或视图中:

if @some_article.editable?
  # Show edit link
end

答案 1 :(得分:0)

您可以使用以下内容:

article.created_at > 1.week.ago