やりたいこと
Herokuにデプロイした後、ページを開く事ができなかったのでheroku logs --taillで確認したところ以下のエラーが発生していた。このエラーを解消したい。
ActionView::Template::Error (undefined method `humanize' for 0:Integer): <p>店舗名:<%= sub.stores_i18n %></p>
調査
エラー原因
mainテーブルとsubテーブルにおいてenumを使用した。
main.rb
enum stores: { seven: 0, lawson: 1, family: 2 }
sub.rb
enum stores: { seven: 0, lawson: 1, family: 2 }
enumを複数カラムで同じ名前を使う時、main.stores_i18n、sub.stores_i18nでどちらのプログラムを見ればいいか分からなくなるのでherokuでエラーが発生した。この場合_prefix: trueをつけることで解決する事ができます。
enum stores: { seven: 0, lawson: 1, family: 2 }, _prefix: true