2012-09-09 68 views
0

因此,我使用jquery数据表和列过滤扩展来对Rails项目中的页面和过滤器表日期进行排序。关于我的表的一个不寻常的事情是,我需要将月份和日期组件分成不同的列,并允许搜索这些列上的过滤。在rails中按日期分类排序

因此,我正在寻找帮助,特别是在动态构建的ActiveRecord查询中搜索和排序月/日期部分。

任何想法表示赞赏。

+0

我建议不要将日期部分拆分为单独的列。大多数数据库都有日期函数。例如在Mysql中,你可以这样做:'Model.order('YEAR(created_at)')'和DAY/MONTH /等。 – jdeseno

+0

对不起,只有显示表将显示在不同的列中,我打算在数据库中保留它作为一个日期。 – user1314283

回答

1

Rails包含ActiveSupport和一大堆Date帮助器。

http://as.rubyonrails.org/classes/ActiveSupport/CoreExtensions/Date/Calculations.html

例如,

  • 提前
  • at_beginning_of_day
  • at_beginning_of_month
  • at_beginning_of_quarter
  • at_beginning_of_week
  • at_beginning_of_year
  • at_end_of_month
  • at_en d_of_quarter
  • at_end_of_week
  • at_end_of_year
  • at_midnight
  • beginning_of_day
  • beginning_of_month
  • beginning_of_quarter
  • beginning_of_week
  • beginning_of_year
  • 变化
  • end_o f_day
  • end_of_month
  • end_of_quarter
  • end_of_week
  • END_OF_YEAR
  • LAST_MONTH
  • last_year
  • 午夜
  • 周一
  • months_ago
  • months_since
  • next_month
  • next_week
  • next_year
  • 因为
  • 明天
  • years_ago
  • years_since
  • 昨天

基准日类也有一个很多方法:
http://www.ruby-doc.org/stdlib-1.9.3/libdoc/date/rdoc/Date.html

例如,月份,日期和年份都可用。

+0

谢谢,我知道这些,但不认为任何适合我的用例。我不认为我的初始帖子是完全清楚的。我需要将结果排序在数据库中:03/31/2000,04/01/2001,04/02/2002。我意识到你可以按datepart排序,即月(如上所述),但不知道如何连接两个这样的排序(或其他方式来实现相同的事情)。谢谢。 – user1314283