A simple plugin that allows to keep history records of the users activities. Common uses could be user's wall, public timeline portlets, etc...
Scribe (From Wikipedia, the free encyclopedia): "A scribe was traditionally a person who could read and write. This usually indicated secretarial and administrative duties such as dictation and keeping business, judicial, and history records for kings, nobles, temples, and cities."
- Run the following command:
script/plugin install git://github.com/linkingpaths/acts_as_scribe.git
- Generate the tables via the given generator:
script/generate acts_as_scribe_migration
- And finally...
rake db:migrate
class Comment < ActiveRecord::Base record_activity_of :user end
You can use any association that is related to an user:
class Post < ActiveRecord::Base belongs_to :author, :class_name => "User" record_activity_of :author end
This will register automatically a new activity when you create or destroy a new record. If you want control over the activities registration based on your model's state just use the :if option
class Post < ActiveRecord::Base belongs_to :author, :class_name => "User" record_activity_of :author, :if => Proc.new { |post| post.private == false } end
If you record activities different than the default create and destroy you can specify the :actions option
class Post < ActiveRecord::Base belongs_to :author, :class_name => "User" record_activity_of :author, :actions => [:create, :update, :destroy] end
If you want to record activities not related to any specific model just use Activity.report
in your code:
def grant_admin(user) user.admin = true Activity.report(current_user, :grant_admin, user) end
If the action is not related to any item, just don't use it.
def login current_user = User.find(…) Activity.report(current_user, :login) end
http://github.com/linkingpaths/acts_as_scribe
http://github.com/linkingpaths/acts_as_scribe/wikis
Copyright (c) 2008 Linking Paths, released under the MIT license