accessorize
文件大小: unknow
源码售价: 5 个金币 积分规则     积分充值
资源说明:Log all data access for your ActiveRecord models
= Accessorize

Log all data access for your ActiveRecord models

== How does it work?

Sometimes you need to keep rigid logs of who created, updated and even accessed 
the data in your database. Accessorize simplifies the process by allowing you to 
register observers for your models declaratively in one place. Each ovbserver
will save access events to a single table "accessors" which stores the user that 
is accessing the record, the type of access (create, update, view, destroy) and 
the id of the record that was accessed.

== Performance

Because accessorize record view level access events it can become very slow. You
should only enable it for heavily controlled models. For example, if you have an
index page that lists all patients in your database in a table, a new access
event is created for every row. Think of the children. 

== Make it work

First you need to install the gem (hosted on Gemcutter):

  sudo gem install accessorize

Then you need to run the generator in your project:

  /my/cool/rails/app $ accessorize
  
Then you need to edit the accessorize.rb file in config/initializers. You can 
control the automatic accessor and meta methods:

  Accessorize.configure do |config|
    config.accessor = :current_user # default
    config.meta = :current_meta # default
  end

Accessorize uses these settings when your model is accessed from a controller. 
When logging the "accessor_id", it will by default grab the id current_user from 
the application controller. You can change which method is called and replace it 
with something custom. 

The meta information has no specific use. It could be used to store the users
IP address, the current action or route, or really anything you like. Again,
accessorize will by default try to access the current_meta method on the 
application controller. You can define this method or point it to something 
else. If the method does not exist, the meta attribute will be nil for the 
record.

If you are not saving from a controller you can simply set these values to 
whatever you like:

  Accessorize::Extension.accessor = 101
  SomeAccessorizedModel.first
  Accessorize::Accessor.last.accessor 
  # => 101


== Note on Patches/Pull Requests
 
* Fork the project.
* Make your feature addition or bug fix.
* Add tests for it. This is important so I don't break it in a
  future version unintentionally.
* Commit, do not mess with rakefile, version, or history.
  (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
* Send me a pull request. Bonus points for topic branches.

== Copyright

Copyright (c) 2010 Jeff Rafter. See LICENSE for details.

本源码包内暂不包含可直接显示的源代码文件,请下载源码包。