Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

A simple plugin that allows to keep track of the users activity. Common uses could be user's wall, public timeline portlets, etc...

branch: master

Fetching latest commit…


Cannot retrieve the latest commit at this time

Octocat-spinner-32 features
Octocat-spinner-32 generators
Octocat-spinner-32 lib
Octocat-spinner-32 spec
Octocat-spinner-32 .gitignore
Octocat-spinner-32 MIT-LICENSE
Octocat-spinner-32 README.markdown
Octocat-spinner-32 Rakefile
Octocat-spinner-32 VERSION.yml
Octocat-spinner-32 acts_as_scribe.gemspec
Octocat-spinner-32 init.rb


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://

  • Generate the tables via the given generator:

    script/generate acts_as_scribe_migration

  • And finally...

    rake db:migrate

Record activities in your models

  class Comment 

You can use any association that is related to an user:

  class Post  "User"
    record_activity_of :author

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  "User"
    record_activity_of :author, :if => { |post| post.private == false }

If you record activities different than the default create and destroy you can specify the :actions option

  class Post  "User"
    record_activity_of :author, :actions => [:create, :update, :destroy]

Record activities without related item

If you want to record activities not related to any specific model just use in your code:

  def grant_admin(user)
    user.admin = true, :grant_admin, user)

If the action is not related to any item, just don't use it.

  def login
    current_user = User.find(…), :login)


Copyright (c) 2008 Linking Paths, released under the MIT license

Something went wrong with that request. Please try again.