szimek / enum_fu

enum_fu is a rails plugin with which you can use integer fields in DB as enum typed in ActiveRecord

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

EnumFu

With enum_fu, you can use integer fields in DB as enum typed in ActiveRecord.

* faster operation in DB
* easy coding

Install

rails plugin install git://github.com/galetahub/enum_fu.git

Usage

In database:

create_table 'users' do |t|
  t.column 'role', :integer, :limit => 2
end

In model:

class User < ActiveRecord::Base
  acts_as_enum :role, [:customer, :admin]
end

Examples

Create new record:

u = User.new(:role => :customer) 
u.save

Get value:

u.role				# :customer
u.role_before_type_cast		# 0

Set value:

u.role = :user

Get the integer value for an enum value

User.role(:user)		# 1

List of all enum values:

User::ROLE			# [:customer, :admin]

In a view:

<% form_for :customer, :url => {:action => 'create'} do |f| %>
    <%= f.select :role, Customer::ROLE %>
<% end %>

In a controller:

u = User.new(params[:customer])

About

enum_fu is a rails plugin with which you can use integer fields in DB as enum typed in ActiveRecord