2014-04-22 3 views
0

내 프로젝트 모델의 파일 ​​형식은 start_date이고 end_date입니다. start_yearend_year 범위의 프로젝트를 필터링하고 싶습니다.날짜 범위 내의 검색 기록

현재 구현 :

class Project < ActiveRecord::Base 

    scope :in_date_range, ->(start_year, end_year) do 
    where(arel_table[:start_date].gt(start_year).and(arel_table[:end_date].lt(end_year)) 
    end 

end 

을 그리고 사업을 반환

Project.in_date_range(start, end) 

처럼 사용

class Project < ActiveRecord::Base 
    ... 

    def self.date_range(start_year, end_year) 
    end 
end 
+0

반복 질문 http://stackoverflow.com/questions/4534434/ruby-getting-records-filtered-by-date – wurde

답변

1

start_date를 가정하면 end_date는 모두 DateTime 개체이고 start_year, end_year는 일년의 값입니다. 2013, 2014 등의 검색어는 다음과 같이 표시됩니다.

Project.where('EXTRACT(YEAR from start_date) <= ? AND EXTRACT(YEAR from end_date) >= ?', start_year, end_year) 
0

당신은과 같이 SQL 쿼리를 구축하기위한 AREL의 DSL을 사용하여 할 수 지정된 범위에

관련 문제