class Monster < ActiveRecord::Base
enum element: [ :fire, :water, :dark ]
end
こんなモデルがあったとして、
monster = Monster.new
monster.element = 1
monster.element # => "water"
monster.element_before_type_cast #=> 1
という挙動をするのでenumの数値を取るときに使われがち。
しかし、
monster = Monster.new
monster.element = :fire
monster.element # => "fire"
monster.element_before_type_cast #=> :fire
シンボルで代入するとbefore_type_castはシンボルを返す。
素直にMonster.elements[monster.element]
とするのが無難っぽい。
そもそもとしてEnumの元の数値を使って何かするというのが微妙なのかもしれない。