This repository is private.
All pages are served over SSL and all pushing and pulling is done over SSH.
No one may fork, clone, or view it unless they are added as a member.
Every repository with this icon (
) is private.
Every repository with this icon (
This repository is public.
Anyone may fork, clone, or view it.
Every repository with this icon (
) is public.
Every repository with this icon (
can_flag /
| name | age | message | |
|---|---|---|---|
| |
.gitignore | Mon Mar 17 01:15:22 -0700 2008 | |
| |
MIT-LICENSE | Sun Mar 16 18:12:01 -0700 2008 | |
| |
README | Mon Mar 17 01:15:22 -0700 2008 | |
| |
Rakefile | Sun Mar 16 20:07:24 -0700 2008 | |
| |
generators/ | Sat Apr 26 07:47:23 -0700 2008 | |
| |
init.rb | Sun Mar 16 18:35:57 -0700 2008 | |
| |
install.rb | Sun Mar 16 18:35:57 -0700 2008 | |
| |
lib/ | ||
| |
tasks/ | Sun Mar 16 18:12:01 -0700 2008 | |
| |
test/ | Mon Mar 17 02:09:24 -0700 2008 |
README
Can Flag
=================
Strongly inspired by acts_as_flaggable.
Intended to allow your users to flag content as inappropriate, and set up some ways for you
to deal with the content.
== Resources
Install
1. Download the tarball from github, or, clone the repository and symlink it into your application.
Yes, I'm serious.
2. $ script/generate can_flag flags
This will create the following files:
app/controllers/flags_controller.rb
spec/helpers/flags_controller_spec.rb
app/helpers/flags_helper
db/migrate/flags_migration.rb
3. Modify any content model with
class Article < ActiveRecord::Base
can_be_flagged
end
You can also add a callback
class Article
can_be_flagged
def after_flagged
# send an email
# delete this post
# suspend the owner of the post if the flags.size > 3
# suspend the owner of the post if their total flags count > 5
end
end
4. Modify your user model with
class User < ActiveRecord::Base
can_flag
end
5. Usage
article = Article.find(4)
current_user.flags.create :flaggable => article
* When a flag is added via add_flag, flagged(flag, flag_count) is called
on the flaggable model. This allows the model to perform certain
operations if the number of flags reaches a certain point. For example,
you may want to mark a Post as deleted if a Post receives too many "spam"
flags
* Each flag reference flaggable object
model = Model.find(1)
model.flags.get(0).commtable == model








