选择唯一,只需几个月的日期

时间:2017-03-02 21:51:03

标签: ruby-on-rails

我在rails 5工作。

这适用于Sqlite查询工具:

SELECT DISTINCT strftime('%m', date) FROM "dailylogs" ORDER BY "dailylogs"."created_at" DESC

但是我正努力在我的rails代码中使用某些东西,我必须这样做:

@dailylog_months = Dailylog.select(strftime('%m', date)).distinct

但是我收到了这个错误:

未定义的局部变量或#

的方法`date'

非常感谢任何帮助。

由于

2 个答案:

答案 0 :(得分:0)

由于您引用的dateDailylog的一部分,因此您的查询应为:

@dailylog_months = Dailylog.select(strftime('%m', :date)).distinct

此外,如果您有多个日期,那么您可以执行以下操作:

@dailylog_months = Dailylog.select { |d| strftime('%m', d.date)}.distinct

如果这解决了您的问题,请告诉我:))

答案 1 :(得分:0)

我认为您正在寻找的是:

@dailylog_months = Dailylog.select("strftime('%m', date)").distinct

使用select语句的引号。要使它可以从Ruby访问,您可能需要:

@dailylog_months = Dailylog.select("strftime('%m', date) as month").distinct