This repository has been archived by the owner on Jul 8, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 55
/
Copy pathREADME
56 lines (36 loc) · 1.87 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
= Symbolize attribute values in ActiveRecord (e.g. for nicer enums)
This plugin introduces an easy way to use symbols for values of ActiveRecord
attributes. Symbolized attributes return a ruby symbol (or nil) as their value
and can be set using symbols.
== About
Since ActiveRecord does not natively support database column types of ENUM or
SET, you'll usually use a string attribute and restrict it to certain values
with validations. Using this plugin, the values of such pseudo-enums are
symbols, which look more ruby-style than strings.
Simply add "symbolize :attr_name" to your model class, and the specified
attribute will return symbol values and can be set using smbols (setting
string values will still work, which is important when using forms).
An attribute to symbolize should be a string (varchar) column in the database.
Blog: http://zargony.com/
Github: http://github.com/zargony/activerecord_symbolize
== Install
./script/plugin install git://github.com/zargony/activerecord_symbolize.git
== Usage
Add "symbolize :attr_name" to your model class. An attribute validation
(like validates_inclusion_of) can be added by using the :in option.
class User < ActiveRecord::Base
symbolize :gender, :in => [:female, :male]
end
== Examples
u = User.find_by_name('Anna') # => #<User Anna>
u.gender # => :female
u = User.find_by_gender(:male) # => #<User Bob>
u.gender # => :male
u = User.find(:all, :conditions => { :gender => :female })
u = User.new(:name => 'ET', :gender => :unknown)
u.save # => validation fails
== Notes
I've been using this for quite some time and made it a rails plugin now. More
background information can be found at
http://zargony.com/2007/09/07/symbolize-attribute-values-in-activerecord
Copyright (c) 2007-2008 Andreas Neuhaus, released under the MIT license