Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Sets up belongs_to creator association based on a created_by magic column (GEM)

branch: master

This branch is 0 commits ahead and 0 commits behind master

Fetching latest commit…

Cannot retrieve the latest commit at this time

README.rdoc

UserStamps

Adds a simple belongs_to associations to a user model based on a magic columns created_by and updated_by as it's foreign key.

Example

class User < ActiveRecord::Base
end

class Item < ActiveRecord::Base
  stamped_by :user
end

i = Item.find(1)
i.created_by  #=> 3
i.creator     #=> #<User id:3>
i.updated_by  #=> 5
i.updator     #=> #<User id:5>

Configuration

You can specify configure how your creator and updator can be specified but you have to pass options to created_by and updated_by separately:

class Item < ActiveRecord::Base
  created_by :user
  updated_by :admin
end

i = Item.find(1)
i.created_by  #=> 3
i.creator     #=> #<User id:3>
i.updated_by  #=> 1
i.updator     #=> #<Admin id:1>

Options

By default, the creator is required, you can turn this off with a :required option:

created_by :user, :required => false

By default, the updator is not required because on create you will need to specify an updator, but you can turn this on with a :required option:

updated_by :admin, :required => true

You could pass a :foriegn_key option to set a specific created_by or updated_by foriegn key but you might as well just setup the association yourself at that point.

Using only Created By

If you only care about creators you can just specify a created_by instead of stamped_by as an option.

class Item < ActiveRecord::Base
  created_by :user
end

i = Item.find(1)
i.created_by  #=> 3
i.creator     #=> #<User id:3>

Copyright © 2010 Reid MacDonald <reid@laruby.com>, released under the MIT license

Something went wrong with that request. Please try again.