2013-08-21 42 views
1

我无法按时间对数据库进行排序。我可以得到日期工作,但我的其他属性不能。无法在Rails中按时间排序

在我的迁移中,时间定义为t.time :start_time。我一直在检查的其他属性是t.decimal :costt.date :date

在我的控制器:

@event = Event.all.order(:start_time) #should sort by start_time, but doesn't work 
@event = Event.all.order(:cost) #should sort by cost, but doesn't 
@event = Event.all.order(:date) #sorts the date by ascending order 

我的其他属性返回正确的值。每个实例返回2000-01-01 14:00:00 UTC40.0

有什么我失踪about .order()?

编辑:它看起来像时间返回2000-01-01 14:00:00日期部分阻碍。它排序正确,但我的实际:date:time日期未同步。当用户提交表单时,任何人都有解决方案将:date的值传递给:time日期?也许通过隐藏的领域?

+0

您是否有某个默认范围?尝试'Event.unscoped.order(:start_time)' – Zippie

+0

任何地方都没有默认范围。当我使用unscoped方法时,它绕过了我有的其他范围,但它仍然没有以正确的顺序返回项目。 – BHOLT

+1

您打电话给'all'并呼叫'Event.order(:start_time)' – Santhosh

回答

2

删除all就返回了正确的结果。

@event = Event.order(:cost)