LoginSignup
2
0

More than 1 year has passed since last update.

Railsでenum使用時にsyntax error, unexpected local variable or method, expecting =>

Last updated at Posted at 2022-11-14

環境

  • Ruby3.1.2
  • Rails6.1.7

問題

image.png
Railsでアプリ作成中にenumを使っていてmodelにenumの記述を加えて動作確認しようとしたらエラーが出た。解決策がわからず、検索しても記事が出てこなかった。

解決方法

解決方法①

- enum period: { 1: 0, 2: 1, 3: 2, 4: 3, 5: 4, オンライン: 5 }
# 数字を半角から全角に変更
+ enum period: { 1限: 0, 2限: 1, 3限: 2, 4限: 3, 5限: 4, オンライン: 5 }

とするとimage.png
エラーは出たものの、先ほどのエラーは解消されていそう。

解決方法②

enum day_of_week: { 月曜日: 0, 火曜日: 1, 水曜日: 2, 木曜日: 3, 金曜日: 4, 土曜日: 5, オンライン: 6 }
- enum period: { 1限: 0, 2限: 1, 3限: 2, 4限: 3, 5限: 4, オンライン: 5 }
+ enum period: { 1限: 0, 2限: 1, 3限: 2, 4限: 3, 5限: 4, 指定なし: 5 }

エラー文からわかる通り、「オンライン」という文字が既に同モデルのenumで使われていることが原因。
重複を避けるようにして解決。

まとめ

  • enumの記述の中で半角と全角が混在してはいけない
  • 別のカラムでも同モデルであれば値が重複してはいけない

最後に

今回のエラーは自分が調べたときは同じ例がなかったため、初めて記事を書いてみました。
同じエラーではまった人のお役に立てたら幸いです!
※参考記事などはないので書いた内容が間違っている可能性もあるので鵜呑みはしないようお気を付けください。。。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0