dev/mom0tomo

技術メモ

Railsのja.ymlでEnumの内容が被ったら

Enumの内容がかぶると、重複エラーになる。

You tried to define an enum named "monthly" on the model "Room", but this will generate a instance method "monthly?", which is already defined by another enum.

こういうときはprefixとsuffixをつけて区別してあげればいい。

読んだもの

api.rubyonrails.org

学んだこと

修正前

model/Room.rb

  enum yachin_type: {
    monthly: 1, # 月額
    yearly: 2 # 年額
  }

  enum kanrihi_type: {
    monthly: 1, # 月額
    yearly: 2 # 年額
  }

# => 重複エラーになる

修正(prefixをつける場合)

model/Room.rb

  enum yachin_type: {
    monthly: 1, # 月額
    yearly: 2 # 年額
  }, _prefix: :kanrihi_type

  enum kanrihi_type: {
    monthly: 1, # 月額
    yearly: 2 # 年額
  }

修正(suffixをつける場合)

model/Room.rb

  enum yachin_type: {
    monthly: 1, # 月額
    yearly: 2 # 年額
  }, _suffix: true

  enum kanrihi_type: {
    monthly: 1, # 月額
    yearly: 2 # 年額
  }