본문으로 건너뛰기

기술 글

impressions로 로깅+조회수 저장하기

레일즈에서 조회수를 트래킹하는 방법은 여러가지가 있습니다...

표시 날짜
읽는 시간
1 min read
Tags

레일즈에서 조회수를 트래킹하는 방법은 여러가지가 있습니다.

이 중에 가장 간단하게 구현할 수 있는 방법으로 impressionist을 소개합니다.

gem 'impressionist'

젬 등록 후 아래 커맨드로 필요한 테이블을 생성합니다.

rails g impressionist
rails db:migrate

이제 조회수를 저장할 모델과 컨트롤러에 아래와 같이 추가합니다.

PostsController < ApplicationController
   impressionist actions: %i[show index]
end

Post < ApplicationRecord
    is_impressionable counter_cache: true, column_name: :view_count
end

이제 Post 컨트롤러에 show, index 액션마다 Impression 테이블에 로깅이 됩니다.

user_id, controller_name, action_name, ip_address, session_hash, referrer 등이 저장되며 자세한 부분은 문서 참고 부탁드리겠습니다.