【Rails5】SyntaxError: (): mapping values are not allowed エラーの解決法
この記事の概要
SyntaxError: (<unknown>): mapping values are not allowed
上記エラーに対応するために調べたところ、.ymlファイルのインデントが原因であることがわかった。目次
- この記事の概要
- 目次
- 試そうとしたこと
- エラーの分析
- ja.ymlを見てみる
- 解決策
- まとめ
試そうとしたこと
Rails5で簡単なTaskアプリケーションを作って学んでいたのだが、SyntaxError: (<unknown>): mapping values are not allowed エラーにハマった。エラーの分析
can not load translations from /Users/*****/Task_App/config/locales/ja.yml: #): mapping values are not allowed in this context at line 15 column 7
どうやらja.ymlにエラーがあるらしい。 ymlファイルは、エラーメッセージが日本語を出すためのrawファイルであり、 GitHubのrails-|18nリポジトリにあるファイルを適当にダウンロードしたものである。
ja.ymlなので日本語設定である。
en.ymlだと英語設定になる。
ja.ymlファイルを見てみる
(中略)
models:
task: タスク
attributes:
task:
id: ID
name: 名称
description: 詳しい説明
created_at: 登録日時
updated_at: 更新日時
models:
task: タスク
attributes:
task:
id: ID
name: 名称
description: 詳しい説明
created_at: 登録日時
updated_at: 更新日時
んー?
15行目あたりにエラーがあるらしいが、特に変わったところは見当たらない。
何がおかしいのだろうかと思って色々と検索してみた。
解決策
どうやら、ymlファイルにはスペースの数が決まっているようだ。
今回のケースだと, model:, attribute:が最初の階層なのでスペース無しで、その他が二つ目の階層なので半角スペース2つ分になるらしい。
(中略)
models:
task: タスク
attributes:
task:
id: ID
name: 名称
description: 詳しい説明
created_at: 登録日時
updated_at: 更新日時
models:
task: タスク
attributes:
task:
id: ID
name: 名称
description: 詳しい説明
created_at: 登録日時
updated_at: 更新日時
スペースを修正したら、エラーが解消された。
コメント
コメントを投稿