kazumalab tech log

流行りとリラックマと嵐が大好きです。技術的ログ。

RailsのSelectタグでenumを使うかつi18nを利用する

いつも忘れるのでメモ。

model

class User < ApplicationRecord
  enum state: { unpublished: 0, published: 1 }
end

i18n file

ja:
  activerecord:
    attributes:
      user:
        email: メールアドレス
        password: パスワード
    enum:
      user:
       state:
          unpublished: 非公開
          published: 公開

view

= f.select :state, User.states.keys.map{|key| [I18n.t("activerecord.enum.user.state.#{key}"), key] }, {}, class: "select-css"

雑にやるならこんな感じ。