Ruby(续集):按日期(年份)和属性过滤

时间:2012-09-15 09:42:27

标签: ruby-on-rails ruby database select sequel

使用续集,我需要查找在2012中创建的所有文档,并且标题为@title

$dataset = DB[:documents]
$dataset.select(:title).where(:created_at.extract(:year) => 2012, title: @title).all

但这不会返回任何内容,而是返回两个文档。

2 个答案:

答案 0 :(得分:4)

您没有提到您正在使用的数据库,但如果您使用的是SQLite,则需要设置DB.use_timestamp_timezones = false并清除数据库中的所有时间戳以删除时区。续集默认在SQLite上使用时区,但SQLite的日期/时间函数无法识别带时区的时间戳。

如果您不使用SQLite,则应提供有关您的情况的更多详细信息。

答案 1 :(得分:1)

我认为您刚刚写了title: @title而不是:title => @title,并且还验证@title与标题的类型相同