ActsAsBits
A plugin to maintain massive flags in one column.
Table Definition
Add “string” column into your model table.
ALTER TABLE users ADD operations varchar(255);
Model Definition
class User < ActiveRecord::Base
acts_as_bits :operations, %w( create read update delete )
end
Usage
user = User.new
user.create? # => false
user.create = true
user.delete = true
user.operations # => "1001"
user.create? # => true
User.create!(:update => true, :read=>false)
Search
Finding methods work only on PostgreSQL, MySQL and SQL Server because we use “substring” function
User.find(:all, :conditions=>{:read=>true})
Author
moriq and maiha