2015年2月8日日曜日

ActiveRecord Enumとselect boxの連携でrails_configを使う

環境は以下になります。
ruby: 2.2.0
rails: 4.2

config(旧rails config)をインストールします。
(settinglsogicでも利用できる方法だと思います)
Gemfileに以下の記述を追記します。

gem 'config'

gemをインストールします。

$ bundle install

rails_configをrailsにインストールします。

$ bundle exec rails g config:install

今回はtestdata(モデル)にstatus(カラム)を設定してenumを利用します。
scaffoldを作成します。

$ bundle exec rails g scaffold testdata status:integer

statusで利用するリストをconfig/settings.ymlに記述します。

model:
  testdata:
    status:
      admin: 10
      normal: 20
      guest: 30

記述に対してデータを設定します。
app/model/testdatum.rbに記述します。

class Testdatum < ActiveRecord::Base
  enum status: Settings.model.testdata.status
end

設定したデータをviewフォームに適応します。
app/view/testdata/_form.html.erbでの該当のフォームを以下の記述に変更します。
selectedも同時に設定します。



  <%= f.label :status %>
  <%= f.select :status, @testdatum.statuses.keys , selected: @testdatum.status %>



0 件のコメント:

コメントを投稿