RailsでActive Recordのenumのカラムに対してselectタグを設置する手順です。
enumを使うことでマジックナンバーを隠蔽し、意味がわかりやすい値やメソッドを使って処理ができます。
🗽 Modelのenum
Model側にenum
をカラムに設定します。
class Article < ActiveRecord::Base |
😀 Viewのform
View側にFormを設定します。deleted
やpublished
をそのまま使う場合はこちら。
<%= f.select :status, Article.statuses.keys.to_a, {} %> |
続いて日本語で表示する場合はこちら
<%= f.select :status, Article.statuses.map { |k, v| [t(articles.status.#{k}), v] %> |
ロケールファイルconfig/locales/ja/status.yml
には次のように記述します。
ja: |