从租赁应用程序获取可用日期列表

时间:2012-06-19 14:34:12

标签: ruby-on-rails database activerecord

我正在为电子商务网站创建一个ROR应用程序,该网站负责管理租用项目一段时间。物品将被物理交付和提取。物品总是租用30天。

所以我面临的问题是,我需要以某种方式获得可以租用物品的日期,并且从那时起至少可以使用30天。 (例如,如果预留10天后租用,则客户今天不能租用物品)

在我的数据库中,我有一个存储提货和交货日期的租赁表。

我将使用jQuery日期选择器,只需要一次加载1个月的可用日期(每次按下下个月按钮隐藏不可用日期时我都可以重做查询)

执行此类查询并获取某个项目可用30天的所有日期的最佳方法是什么?我总是可以在这个月的每一天进行迭代,并检查30天内是否有其他记录,但这似乎是多余的查询。

非常感谢任何帮助。

谢谢, 泰勒

1 个答案:

答案 0 :(得分:0)

您如何知道保留物品的日期?根据它进行查询。也许您的Rental模型有reserved_on属性?

class Rental < ActiveRecord::Base

  scope :available, where('rented = ? AND reserved_on > ?', false, 30.days.from_now)

end

编辑以回应评论

如果正在查看单个对象,您可以在其上创建类似的方法:

def last_available_day
  delivery_date && delivery_date - rental_period  # 30 days
end

def is_available_on?(date)
  return true unless last_available_day
  date <= last_available_day
end