/acts_as_commentable

The ActiveRecord acts_as_commentable plugin

Primary LanguageRubyMIT LicenseMIT

Acts As Commentable

Allows for comments to be added to multiple and different models.

Resources

Install

 Rails

  * To install as a plugin

  ** Rails 3:
   script/plugin install http://github.com/jackdempsey/acts_as_commentable.git

  ** Rails 2:
   script/plugin install http://github.com/jackdempsey/acts_as_commentable.git -r 2.x

  * To install as a gem
  sudo gem install 

 Merb/Rails

  * To install as a gem:
   Run the following if you haven't already:
   gem sources -a http://gems.github.com

   Install the gem(s):
   sudo gem install jackdempsey-acts_as_commentable

   add the folloowing line to your environment.rb
   config.gem 'jackdempsey-acts_as_commentable', :lib => 'acts_as_commentable', :source => "http://gems.github.com"

  * The gem's have also been pushed to gemcutter.org, so if you have that in your sources, you can just 'gem install acts_as_commentable'

Generate your comment model:

script/generate comment

Then migrate your database:

rake db:migrate

Usage

Merb Users:
* add 'dependency "acts_as_commentable"' to your init.rb or dependencies.rb if using merb-stack

* Make your ActiveRecord model act as commentable.

class Model < ActiveRecord::Base
	acts_as_commentable
end

* Add a comment to a model instance

commentable = Model.create
commentable.comments.create(:title => "First comment.", :comment => "This is the first comment.")

* Fetch comments for a commentable model:

commentable = Model.find(1)
comments = commentable.comments.recent.limit(10).all

# Following doesn't work/make sense to me. Leaving for historical sake -- Jack
# * Each comment reference commentable object
#
# model = Model.find(1)
# model.comments.get(0).commentable == model

Credits

Xelipe - This plugin is heavily influenced by Acts As Taggable.

More

www.juixe.com/techknow/index.php/2006/06/18/acts-as-commentable-plugin/ www.juixe.com/projects/acts_as_commentable