しまもん 

モンスターラボ島根開発拠点のブログ

【今日のgem】enumを扱うのに便利な「enumerate_it」

ぐっち ・2015-06-03

rubyにはenumが用意されていないので、独自に工夫されている方が多いと思いますが、手軽に導入できるgemもあります。

Rails4.1ではActiveRecord enumsが利用できるようになっていますが、 今日、紹介するenumerate_itは、ActiveRecord依存せず使うことができます(連携することもできる)

cassiomarques/enumerate_it

以下のようにクラスに定義すると

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

| 採用情報

城下町・松江で一旗揚げたいRailsエンジニア絶賛募集中!

Blue