检查日期是否在两个其他日期之间

时间:2014-10-06 14:05:53

标签: ruby-on-rails ruby ruby-on-rails-4

我有一个名为" Tenant"它有两个日期属性tenant_fromtenant_until

我想写一个方法来检查Date.today是否在我上面提到的两个日期之间。我想沿着这些方向做点什么:

IF Date.today IS BETWEEN tenant.tenant_from AND tenant.tenant_until DO
  ...
ELSE
  ...       

3 个答案:

答案 0 :(得分:17)

尝试

if Time.zone.today.between?(tenant.tenant_from, tenant.tenant_until)
  # YOUR CODE GOES HERE
else
  # YOUR CODE GOES HERE
end

答案 1 :(得分:9)

仅为替代解决方案。您可以使用日期范围和cover?来达到同样的效果。

(tenant.tenant_from .. tenant.tenant_until).cover?(Date.today)

答案 2 :(得分:1)

Class Tenant < ActiveRecord::Base
  def current? #name this what you want, but keep the question mark, since it returns a boolean
    (tenant.tenant_from.to_date .. tenant.tenant_until.to_date).include?(Date.today)
  end
end

现在,您在模型的实例(它所属的位置)上拥有模型逻辑。那么你的逻辑是if @tenant.current?

相关问题