BLOG main image
분류 전체보기 (239)
Rails (65)
Ruby (34)
이야기 (40)
스토리큐 (61)
그 밖에.. (30)
C# (6)
드리밍 인 코드
The note of Legendre
작은아이의 생각
agiletalk's me2DAY
[rails] Growl4Rails
美소년 ㅇㅅㅇ씨의 一日
마사키군의 생각
ayukawa's me2DAY
작은아이의 생각
agiletalk's me2DAY
63,405 Visitors up to today!
Today 10 hit, Yesterday 22 hit

 SUBSCRIBE

2008/04/06 19:37

어떤 모델의 count를 증가시킬 때,

예를 들어 Issue라는 model이 있고, show 요청이 있을 때마다 이 model의 view_count를 증가시키고 싶다면, 다음과 같은 코드를 생각할 수 있다.

  1. def hit!
  2.   update_attribute(:view_count, view_count+1)
  3. end

위 코드는 view_count를 증가시키기는 하지만, 일반적인 save의 과정을 따라가기 때문에 updated_at 역시 변경시킨다. 그리고 오래 걸린다.

 

view_count만 변경하고 싶다면, query를 직접사용하는 것이 한 방법일 수 있다.

그리고 나처럼 sql이 영 부담스럽다면 increment_counter를 이용할 수도 있다.

  1. class Issue < ActiveRecord::Base
  2.   def hit!   
        self.class.increment_counter(:view_count, self.id)
      end
  3. end

이 글은 스프링노트에서 작성되었습니다.