前提・実現したいこと
impressionistを使って商品の詳細ページでのプレビュー数をカウンティングをして、それをトップページで表示したいです。
発生している問題・エラーメッセージ
投稿された商品がeachとしてindexに表示をされています。
その一覧から詳細ページ見たときのカウンティングしても全てのコンテンツに対してのクリックしたページの数字になってしまいます。
例Aのページのカウント数が5回の場合
|A|B|C|D|E|
|5|5|5|5|5|
その後Bのページ(プレビュー数が9回)に行った後
|A|B|C|D|E|
|9|9|9|9|9|
その後Cのページ(プレビュー数が1回)に行った後
|A|B|C|D|E|
|1|1|1|1|1|
このようにそのページに対してのプレビュー数が出てしまいます。
showページでの表示はそのページのプレビュー数が出ます。
しかしindexでは全てのコンテンツがその数に変わってしまします。
該当のソースコード
def index @productc = Product.all $page_view = $page_views end def show @products = Product.find(params[:id]) impressionist(@products, nil, :unique => [:session_hash]) $page_views = @products.impressionist_count end
VIEW/index <h1>コンテンツ一覧</h1> <% @products.each do |product| %> <%= product.title %> <%= number_with_delimiter($page_views) %> <% end %>
class Product < ApplicationRecord is_impressionable end
gem 'impressionist'
試したこと
$page_view.saveなどをして見ましたがダメでした。
カラムとしてcountを持たせてshowページを見るたびにcountを+1する方法も考えていますがやり方がわかりません。。。
よろしくお願いします。
あなたの回答
tips
プレビュー