我已经按照链接中的说明安装了 Gem Ahoy -> https://github.com/ankane/ahoy
将此行添加到应用程序的 Gemfile 中:
gem 'ahoy_matey'
并在 app/assets/javascripts/application.js 中的 jQuery 之后添加 javascript 文件。
//= require jquery
//= require ahoy
MySQL 或 SQLite
将 activeuuid 添加到您的 Gemfile 中。
gem 'activeuuid', '>= 0.5.0'
然后运行:
rails generate ahoy:stores:active_record
rake db:migrate
最后一个命令产生以下错误
rake db:migrate
== CreateVisits: migrating ===================================================
-- create_table(:visits, {:id=>false})
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:
PG::UndefinedObject: ERROR: type "binary" does not exist
LINE 1: CREATE TABLE "visits" ("id" binary(16) PRIMARY KEY, "visitor...
这是一个老问题,已在最新版本的 Ahoy 上得到修复。该错误消息意味着 MySQL 数据库没有
binary
数据类型。要解决此错误,请尝试以下解决方案。
在Ahoy迁移文件中将
id
列的数据类型从binary
修改为bytea
:
create_table :visits, id: false do |t|
t.bytea :id, limit: 16, primary_key: true
# Other fields
end
或者在
bundle install
之后运行此命令:
rails generate ahoy:install
跳过
activeuuid
gem 和 rails generate ahoy:stores:active_record
命令,因为仅 PostgreSQL 需要 activeuuid
gem。运行此命令来创建访问表:
rails generate ahoy:stores:sql
最后:
rails db:migrate