更新的属性我on Rails的4轨道4 - 根据时间/日期
我现在有一个Room
模型与active?
属性。创建房间时,用户可以设置不同的时间和日期,让他们的房间处于活动状态。
我的目标:如果用户创建与日期3月3日的房间 - 3月5日,我想将在5月同样设置为true
年03月3 false
的active?
然后无二如果用户设置时间(例如,上午10点 - 下午5点)
什么是最好的方式去做这件事?无法找到任何文档。如果有人能指出我正确的方向,将不胜感激。
更新的属性我on Rails的4轨道4 - 根据时间/日期
我现在有一个Room
模型与active?
属性。创建房间时,用户可以设置不同的时间和日期,让他们的房间处于活动状态。
我的目标:如果用户创建与日期3月3日的房间 - 3月5日,我想将在5月同样设置为true
年03月3 false
的active?
然后无二如果用户设置时间(例如,上午10点 - 下午5点)
什么是最好的方式去做这件事?无法找到任何文档。如果有人能指出我正确的方向,将不胜感激。
它你是如何存储你的开始和结束日期的,但是假如你有start_date
和end_date
不清楚,那么你可以如下定义您active?
方法:如果需要
def active?
Date.current >= start_date && Date.current < end_date
end
更换Date
与DateTime
是的,我有一个'start_date'和'end_date'也被保存到数据库。我认为这会起作用,但是当数据库到达开始或结束时,我将如何实际更新数据库中的'active?'属性? – Kathan
你可能不想这样做,你必须有一个不断运行的进程,并寻找改变数据库设置的条件。你应该计算它是否有效,除非你有一个非常有说服力的理由。 – Prescott
你不会在数据库中拥有一个活动属性,你可以单独计算活动(或不活动)如上,无论是在查询数据库(你可以制作范围)和查看加载的记录。如果你真的想在数据库中有一个更新的活动列,你需要一个重新定位的bg作业来更新它 - 你可以这样做,虽然它总是会有一些轻微的滞后已经正确更新了。但是这个解决方案更好。 – jrochkind
添加预定表并记录用户进行预约时的日期时间。
class Reservation < ActiveRecord::Base
attr_accessible :reservated_from, :reservated_to
belongs_to :room
end
class Room < ActiveRecord::Base
has_many :reservation
end
你如何存储你的开始和结束日期? – Prescott