두 개의 타임 스탬프, Last_visited 및 Last_modified를 기록하는 Feed라는 모델이 있습니다.두 날짜를 비교할 범위 만들기
내가 피드의 목록을 렌더링 할 위치 LAST_MODIFIED> last_visited
나는 현재 내 모델이 범위가 있습니다
scope :hottest, lambda {where("'last_modified' > ?", 'last_visited')}
컨트롤러
def home
@user = current_user
@feeds = @user.feeds
end
을 그리고 난 보기의 링크를 다음과 같이 렌더링 :
%ol
- @feeds.hottest.each do |feed|
%li
= render :partial => 'feeds/feed_link'
(210)
여기 내 서버 로그 (나는 포스트 그레스를 사용하고 있습니다) 렌더링 작업은 다음과 같습니다
Feed Load (0.4ms) SELECT "feeds".* FROM "feeds" WHERE "feeds"."user_id" = 1 AND ('last_modified' > 'last_visited')
예상대로 나는 데이터베이스에 하나 개의 항목이 곳 LAST_MODIFIED> last_visited, 아직 내보기에 렌더링하지 않습니다 있습니다
Foofeed
Last Modified 2013-06-15 01:08:27 UTC
Last Visited 2013-06-15 01:05:32 UTC
이것이 작동하지 않는 이유에 대해 조금 의아해합니다.
어떤 통찰력이나 대안적인 접근법도 크게 감사하겠습니다.
저에게이 있습니다 그NameError'정의되지 않은 지역 변수 또는 메소드 'last_visited'for #' –
cupcakekid
'last_visited' 선언을 보여줄까요? 서버 로그에서 last_modified를 last_visited (날짜 대신 문자열)와 비교하는지 확인할 수 있습니다. last_visited를 올바르게 호출해야합니다. 보십시오'self.last_visited' – shinnyx
아니, 아직도 행운. 이것이 올바른 접근인지 궁금합니다. 수업에 여는 것이 더 효과적일까요? – cupcakekid