Use symbols in ActiveRecord columns. This gem implements a subset of nofxx's symbolize gem.
Include the gem in your Gemfile:
gem 'cymbalize', '~> 0.1.0'
Please note that :scopes
, :methods
, and :allow_blank
don't do
anything unless :in
is an array with at least one symbol.
class User < ActiveRecord::Base
symbolize :gender
end
u = User.new(:gender => :robot)
u.gender # :robot
class User < ActiveRecord::Base
symbolize :gender, :in => [:decepticon, :autobot]
end
u = User.new(:gender => :autobot)
u.valid? # true
u.gender = :robot
u.valid? # false
class User < ActiveRecord::Base
symbolize :gender, :in => [:asterix, :obelix], :methods => true
end
u = User.new(:gender => :asterix)
u.asterix? # true
u.obelix? # false
class User < ActiveRecord::Base
symbolize :gender, :in => [:zerg, :protoss, :terran], :scopes => true
end
u = User.create(:gender => :zerg)
User.zerg.include?(u) # true
User.protoss.include?(u) # false
class User < ActiveRecord::Base
symbolize :gender, :in => [:mod, :rocker], :allow_blank => true
end
u = User.new(:gender => nil)
u.valid? # true
u.gender # nil
u.gender = ''
u.valid? # true
u.gender # nil