¶ ↑
EnumFuWith enum_fu, you can use integer fields in DB as enum typed in ActiveRecord.
* faster operation in DB * easy coding
¶ ↑
Installrails plugin install git://github.com/galetahub/enum_fu.git
¶ ↑
UsageIn 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
¶ ↑
ExamplesCreate 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])