【今日のgem】enumを扱うのに便利な「enumerate_it」
テクノロジー
rubyにはenumが用意されていないので、独自に工夫されている方が多いと思いますが、手軽に導入できるgemもあります。
Rails4.1ではActiveRecord enumsが利用できるようになっていますが、 今日、紹介するenumerate_itは、ActiveRecord依存せず使うことができます(連携することもできる)
以下のようにクラスに定義すると
class RelationshipStatus < EnumerateIt::Base
associate_values(
:single => [1, 'Single'],
:married => [2, 'Married'],
:widow => [3, 'Widow'],
:divorced => [4, 'Divorced']
)
end
それぞれの値を定数にすることができます
RelationshipStatus::SINGLE
#=> 1
RelationshipStatus::MARRIED
#=> 2
値の一覧を取得したり、select_tagで使う配列の形で取得できたり実用的なメソッドが用意されています
RelationshipStatus.list
#=> [1, 2, 3, 4]
RelationshipStatus.to_a
#=> [["Divorced", 4], ["Married", 2], ["Single", 1], ["Widow", 3]]
enumを扱うGemは、いろいろとありますので、是非、ご活用を https://www.ruby-toolbox.com/categories/ActiveRecordEnumerations