기술 글
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 등이 저장되며 자세한 부분은 문서 참고 부탁드리겠습니다.