我有一个模型 - 可以说Event
具有starts_at
DateTime列。事件模型具有列Time_zone(必需(,可以保存您获得它。
我正在动态设置控制器中的时区。但是,如果我在模型中有一个辅助方法,那就说started?
def started?
starts_at <= Time.zone.now
end
这将返回应用程序配置的时区。
我可以这样做:
def started?
Time.zone = time_zone
starts_at <= Time.zone.now
end
这会解决这个问题 - 但是有什么更好的方法可以做到这一点吗?对于整个型号?
def started?
starts_at <= Time.now.in_time_zone(time_zone)
end
在模型中定义它
class Event < ActiveRecord::Base
# model stuff
def started?
Time.zone = self.time_zone
self.starts_at <= Time.zone.now
end
end
然后您可以以
访问它@event.started?