Can Be Flagged
Allows for flags to be added to multiple and different models.
To install as a gem (recommended):
** gem install can_be_flagged or ** Just add “gem 'can_be_flagged'” to your Gemfile and “bundle install”
Generate your flag model:
** Rails 3: rails g flags
Then migrate your database:
** rake db:migrate
* Mark your ActiveRecord model can_be_flagged. class Post < ActiveRecord::Base can_be_flagged end * Add a flag to a model instance flaggable = Post.create(:text => "Don't be offended by this.") flaggable.flags.create(:comment => "I am offended by that!") * I like to add a counter cache column to my flaggable types: add_column :posts, :flags_count, :integer class Flag < ActiveRecord::Base belongs_to :flaggable, :polymorphic=>true, :counter_cache=>true end * You can have different types of flags class Article can_be_flagged :offensive, :spam end * This gives you methods like this: @article.offensive_flags.create(:comment => "gross!") @article.spam_flags.create(:comment => "Don't sell your pharmaceuticals on this site!") Aricle.find_spam_flags_for(@article) * You can also add a callback class Article can_be_flagged :after_add => :flagged def flagged # send an email # maybe delete this article if there are too many flags end end * In fact you can pass any options that are accepted by has_many: class Article can_be_flagged :dependent=>:nullify end
Juxie - The code for this plugin is heavily influenced by Acts As Commentable.
Bacon Bear? - Frankenstien'd some features from acts_as_flaggable
Flag This is Copyright © 2010-2011 Dan Hixon. It is free software, and may be redistributed under the terms specified in the MIT-LICENSE file.