AccessLogging
Log access to models through your controllers.
Requires Rails ~> 3 and Ruby 1.9.2.
Usage
create_table "access_logs" do |t|
t.integer "user_id"
t.string "user_type", :limit => 16
t.string "user_email", :limit => 100
t.string "ip", :limit => 15
t.datetime "created_at"
t.datetime "updated_at"
t.string "user_name", :limit => 48
t.string "path", :limit => 100
t.string "model_type", :limit => 24
t.integer "model_id"
t.string "description", :default => ""
t.string "verb", :limit => 24
end
rails generate access_logging:model
class SecretsController < ApplicationController
log_access_to :secret
# restful actions: index, show, create, etc.
end
PUT '/sessions/new' # => John Smith signs in
GET '/secrets' # => AccessLog.count += 1; John Smith viewed /secrets
GET '/secrets/1' # => AccessLog.count += 1; John Smith viewed /secrets/1
PUT '/secrets/1' # => AccessLog.count += 1; John Smith updated /secrets/1
etc.
AccessLog.find(2).secret # => <Secret id: 1>
TODO
- Add generator
- Log accesses to Redis first, then dump them into the SQL database later.