rails6.1.0
ページのPV数を計測するためgemのimpressionistを利用しました。
簡単にPV数を出せました。
その後、idによるアクセスを、idから別名(public_uid)に変えました。
変更前:hogehoge/item/1
変更後:hogehoge/item/ea20ga35x3
そうするとPV数が取れなくなりました。
※エラーは出ないのですが、カウントが0のまま
基本的にモデルのidで取るようですが、pubilc_uidなど他のカラムで利用できるのでしょうか?
ご存じの方居たら教えていただけると幸いです。
\app\models\item.rb
ruby
1class Item < ApplicationRecord 2 3 generate_public_uid generator: PublicUid::Generators::HexStringSecureRandom.new(12) 4 def to_param 5 public_uid 6 end 7 8 is_impressionable :counter_cache => true 9 10end
\app\controllers\items_controller.rb
ruby
1impressionist :actions=> [:show], :unique => [:impressionable_id, :user_id]
app\views\items\show.html.erb
ruby
1閲覧数:<%= @item.impressionist_count %>
試したこと
impressionistのマイグレーションスクリプト、
idをintegerからstringに変えてみました。
impressionistが使ってるimpressionsテーブルを除くとデータはちゃんと入ってますが、カウントが相変わらず取れません。
公式も見て色々試しましたが、変わらずです。
\db\migrate\20210525214321_create_impressions_table.rb
ruby
1class CreateImpressionsTable < ActiveRecord::Migration[6.1] 2 def self.up 3 create_table :impressions, :force => true do |t| 4 t.string :impressionable_type 5 t.string :impressionable_id #integerからstringへ変更 6 t.integer :user_id 7 t.string :controller_name 8 t.string :action_name 9 t.string :view_name 10 t.string :request_hash 11 t.string :ip_address 12 t.string :session_hash 13 t.text :message 14 t.text :referrer 15 t.text :params 16 t.timestamps 17 end 18 add_index :impressions, [:impressionable_type, :message, :impressionable_id], :name => "impressionable_type_message_index", :unique => false, :length => {:message => 255 } 19 add_index :impressions, [:impressionable_type, :impressionable_id, :request_hash], :name => "poly_request_index", :unique => false 20 add_index :impressions, [:impressionable_type, :impressionable_id, :ip_address], :name => "poly_ip_index", :unique => false 21 add_index :impressions, [:impressionable_type, :impressionable_id, :session_hash], :name => "poly_session_index", :unique => false 22 add_index :impressions, [:controller_name,:action_name,:request_hash], :name => "controlleraction_request_index", :unique => false 23 add_index :impressions, [:controller_name,:action_name,:ip_address], :name => "controlleraction_ip_index", :unique => false 24 add_index :impressions, [:controller_name,:action_name,:session_hash], :name => "controlleraction_session_index", :unique => false 25 add_index :impressions, [:impressionable_type, :impressionable_id, :params], :name => "poly_params_request_index", :unique => false, :length => {:params => 255 } 26 add_index :impressions, :user_id 27 end 28 29 def self.down 30 drop_table :impressions 31 end 32end 33

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。