2016-10-12 2 views
1

안녕하세요. 저는 프로젝트에서 일하고 있습니다. 그 중 일부로 지난 7 일 이내에 작성된 모든 게시물을 가져올 수 있기를 원합니다. 나는 시도했다 :특정 기간 내에 생성 된 레코드 가져 오기

@weeks_posts = Post.where(date: Date.today) 
    for i in 1..6 
     @weeks_posts = @weeks_posts + Post.where(date: (Date.today).to_time - i.days) 
    end 

그러나이 내가 할 필요가 그것에 체인 .where 절을, 그것도 매우 비효율적 인 것 같습니다 할 수 없음을 의미 배열을 반환 끝납니다.

도움을 주시면 감사하겠습니다.

답변

1

당신은 유연하게하는 scope를 사용할 수 있습니다

scope :by_dates, ->(start_date, end_date) { Post.where(date: start_date..end_date) } 

Post.by_dates(Date.today - 6.days, Date.today) # returns AR collection 
+0

내가 where''에서 범위를 사용하는 것을 선호합니다. – Ilya

+0

@Ilya는 매우 이해가 쉽습니다. –

1

이 같은 것을보십시오 :

Post.where(date: 1.week.ago.beginning_of_day..Time.now) 
+0

매우 간단합니다 :-) thanks – doem

관련 문제