darcy / acts_as_loggable
- Source
- Commits
- Network (1)
- Issues (0)
- Downloads (0)
- Wiki (1)
- Graphs
-
Branch:
master
| name | age | message | |
|---|---|---|---|
| |
MIT-LICENSE | Sat Apr 19 11:20:36 -0700 2008 | |
| |
README | Wed Dec 03 16:57:29 -0800 2008 | |
| |
init.rb | Wed Dec 03 16:57:29 -0800 2008 | |
| |
lib/ | Thu Aug 20 10:18:37 -0700 2009 |
README
== acts_as_loggable
This library adds logging to an ActiveRecord model.
Inspired by acts_as_commentable.
== Usage
class Order < ActiveRecord::Base
acts_as_loggable
...
end
== 1. Simple
o = Order.find(:first)
o.logs << Log.new(:message => "Credit Card Aprroved")
o.logs.first.message # => "Credit Card Aprroved"
== 2. With some details
o = Order.find(:first)
log = Log.new(:message => "Credit Card Aprroved")
log.details = [["transaction_id","TX1234"],["test",false],["foo","bar"]]
o.logs << log
o.logs.first.message # => "Credit Card Aprroved"
o.logs.first.details.first.label # => "transaction_id"
o.logs.first.details.first.detail # => "TX1234"
== 3. Adding a grouping type and an Owner
o = Order.find(:first)
o.logs << Log.new(:message => "Credit Card Aprroved", :group => 'card_approval', :user => User.find(:first), :owner =>
Store.find(:first))
o.logs.find_by_user(current_user)
o.logs.find_by_owner(current_store)
o.logs.find_by_group('card_approval')
== Database
class CreateLoggable < ActiveRecord::Migration
def self.up
create_table "logs" do |t|
t.string "message"
t.integer "loggable_id"
t.string "loggable_type"
t.integer "user_id"
t.string "group"
t.integer "owner_id"
t.string "owner_type"
t.timestamps
end
create_table "log_details" do |t|
t.integer "log_id"
t.string "label"
t.text "detail"
end
end
def self.down
drop_table :logs
drop_table :log_details
end
end
