地方でリモートワーク in Iwate

東京の受託開発会社でリモートワークしてます。

Railsのenumの命名で注意すること

スポンサーリンク

まず、allとかactive_recordにすでにあるメソッドと同じenumは定義できない。 また、1つのモデルに複数のenumを定義した時に、通常の記載方法だと同じenum名を定義できません。

そんな時はこんな感じに書きます。

  enum company: { default: 0, everything: 1, job: 3, monitor: 4, tutor: 5 }, _suffix: true
  enum style:   { default: 0, regular: 1, contract: 2, temp: 3, part_time: 4 }, _suffix: true
  enum area:    { default: 0, tohoku: 1, kanto: 2, chubu: 3, kinki: 4, chugoku: 5, kyusyu: 6 }, _suffix: true

company,style,areaでdefaultが被っているので、

ArgumentError: You tried to define an enum named "style" on the model "Content", but this will generate a instance method "default", which is already defined by another enum.

こんなエラーが発生します。

_suffix: trueもしくは_prefixをつければsame valueつけれます。

ちゃんと書いてありました。

ActiveRecord::Enum