{{ currentPost.title }}
{{ currentPost.datetime }}

What

在model中加入enum的功能。

Why

除了enum外,這個gem還提供了一些相對應的method可以使用。另外enum與column名稱的對應也比較簡單明瞭。

How

摘錄至README

在model中加入enum的設定

class User < ActiveRecord::Base
  as_enum :gender, female: 1, male: 0
end

在migration中加入對應的column

class AddGenderColumnToUser < ActiveRecord::Migration
  def self.up
    add_column :users, :gender_cd, :integer
  end
def self.down
  remove_column :users, :gender_cd
end

內建有許多的method可以使用

jane = User.new
jane.gender = :female
jane.female?   # => true
jane.male?     # => false
jane.gender    # => :female
jane.gender_cd # => 1
joe = User.new
joe.male!     # => :male
joe.gender    # => :male
joe.gender_cd # => 0
User.genders                            # => #
User.genders[:male]                     # => 0
User.genders.values_at(:male, :female)  # => [0, 1]
User.females                            # => # (WHERE gender_cd = 1)

更多細節的設定可以參考:README - Wait, there's more!