RAILS_ROOT/config/code_holder 配下にcsvを配置することでEnumを管理することができる。
Add this line to your application's Gemfile:
gem 'code_holder', github: rawhide/code_holder
And then execute:
$ bundle
Or install it yourself as: (未対応)
$ gem install code_holder
title,性別
#DATA
key,value,position,name,short_name
MALE,m,1,男性,男
FEMALE,f,2,女性,女
key,value,position,name 必須 この後に任意の項目を付け足すことが可能(上記例ではshort_name)
> C.gender.MALE => "m"
> C.gender.MALE.name => "男性"
> C.gender["m"] => "m"
> C.gender["m"].name => "男性"
> C.gender["m"].short_name => "男"
<%= f.select :gender, C.gender.to_opt, :include_blank => "選択してください" %>
CSVのpositionカラムの数字を入れ替えることで、セレクトボックスの順番を変えることも可能
<%= C.gender[user.gender].name %>
ENUMS = Railstar::CodeHolder.new("resources/code")
title,性別テストデータ
type,int_val,integer
#DATA
key,value,position,name,short_name,int_val
FEMALE,f,2,女性,女,2
MALE,m,1,男性,男,1
> C.gender.MALE.int_val => 1
> C.gender.map{|k,v| v.data } => [{:key=>"FEMALE", :value=>"f", :position=>"2", :name=>"女性", :short_name=>"女", :int_val=>"2"}, {:key=>"MALE", :value=>"m", :position=>"1", :name=>"男性", :short_name=>"男", :int_val=>"1"}]
<%= f.select :gender, C.gender.to_opt(:short_name), :include_blank => "選択してください" %>
<%= f.select :gender, C.gender.to_opt(:short_name, :int_val), :include_blank => "選択してください" %>
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request