내 응용 프로그램에는 가장 가까운 날짜 이벤트가 기본값 인 하나의 현재 이벤트 만있을 수 있습니다. 이 이벤트를 여러 위치에서 검색해야하며 변경하지 않기 때문에 캐시하는 것이 좋습니다. 나에게 알려진 두 가지 방법이 있습니다.클래스 변수 레일스 모델의 VS 상수
class Event < ActiveRecord::Base
CURRENT_EVENT = Event.where('starts_on >= ?', Time.now).
order('starts_on ASC').limit(1).first
# OR
def self.current_event
@@current_event ||= Event.where('starts_on >= ?', Time.now).
order('starts_on ASC').limit(1).first
end
end
어느 것이 가장 좋을까요? 또는 다른 대안? @@ 클래스 변수를 쓰는 것은 스레드로부터 안전하지 않기 때문에 권장하지 않습니다.