2012-09-15 2 views
1

Sequel을 사용하여 2012에 생성 된 모든 문서를 찾고 @title이라는 제목이 필요합니다.Ruby (Sequel) : 날짜 (연도) 및 속성으로 필터링

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

그러나 두 개의 문서를 반환하는 대신 아무것도 반환하지 않습니다.

답변

3

당신은 당신이 사용하고있는 데이터베이스 언급하지 않지만, 당신이 SQLite는을 사용하는 경우, 당신이 필요로하는 DB.use_timestamp_timezones = false을 설정하고 데이터베이스의 모든 시간 소인을 정리하여 시간대를 제거하십시오. 후속 작업은 SQLite에서 표준 시간대를 사용하도록 기본값 설정되지만 SQLite의 날짜/시간 함수는 시간대가있는 시간 소인을 인식하지 못합니다.

SQLite를 사용하지 않는 경우 상황에 대한 자세한 정보를 제공해야합니다.

+0

그것은 작동합니다. 너 락. – Alex

1

내가 방금 :title => @title 대신 title: @title을 썼다 있다고 생각하고, 또한 @title 제목과 같은 종류인지 확인

+0

불행히도 작동하지 않습니다! – Alex

+0

지금 당장은 괜찮아 보입니다. 제가하려고하는 것은 조각으로 자르는 것입니다. 처음에는 .select()없이 명령을 시도했습니다. 그래도 작동하지 않으면 조건 중 하나를 제거하십시오. 예를 들어 해마다 또는 제목에 의해서만 시도해보십시오. SELECT 문에서 범인이 무엇인지보십시오. 만약 당신이 어떤 생각을 가지고 있다면 앞으로 가져 오면 도와 드리겠습니다. – Yarneo

+0

Ruby 1.9에서'title : @ title'은': title => @ title'과 같습니다. –