2011-07-27 3 views
1

약속이있는 모델/테이블이 있으므로 날짜로 저장하십시오. 나는 오직 활성 레코드 만 리턴하는 메소드를 만들고 싶다. 모든 레코드에 대해 하나, 객체에 하나. 내 접근 방식을 개선/결합 할 수 있습니까? 조언을위한 Thx!활성 레코드 쿼리에 대한 클래스 메소드

def self.actives 
    where("start_time >= ?", Date.today) 
end 

def is_active 
    where("start_time >= ?", Date.today) 
end 

답변

5

범위는 첫 번째 필터를 처리하는 적절한 방법입니다. 문서를 참조하십시오 : http://api.rubyonrails.org/classes/ActiveRecord/NamedScope/ClassMethods.html

두 번째 필터가 작동하지 않습니다, 교체 :

def is_active? 
  start_time >= Date.today 
end 

당신이 두 가지 방법을 결합하려는 이유는 볼 수 없습니다.

주의하십시오 :

  • Model.actives는 액티브 관계를 제공합니다. 호출을 트리거하려면 .all을 추가해야합니다. 그런 다음 반복 할 배열을 갖게됩니다.

  • instance.is_active? 부울을 제공합니다

+0

위대한 회신 apneadiving에 대한 thx! – daniel

관련 문제