質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Slim

SlimはPHPアプリケーションを開発するための軽量なマイクロフレームワークです。

Q&A

解決済

3回答

4129閲覧

I18n::InvalidLocaleDataのエラーの解消法

tellmeshy

総合スコア1

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Slim

SlimはPHPアプリケーションを開発するための軽量なマイクロフレームワークです。

0グッド

0クリップ

投稿2020/04/23 12:45

編集2020/04/27 07:39

イメージ説明### 前提・実現したいこと

Ruby on Railsでタスク管理アプリケーションを作成している途中でタイトルのエラーが出ました。
エラーが直せません I18n::InvalidLocaleData in Tasks#new

発生している問題・エラーメッセージ

ActionView::Template::Error (can not load translations from /Users/・・・/taskleaf/config/locales/ja.yml: #<Psych::SyntaxError: (<unknown>): mapping values are not allowed in this context at line 5 column 3>): 7: 8: = form_with model: @task, local: true do |f| 9: .form-group 10: = f.label :name 11: = f.text_field :name, class: 'form-control', id: 'task_name' 12: .form-group 13: = f.label :description app/views/tasks/new.html.slim:10 app/views/tasks/new.html.slim:8

---以下、ja.ymlを全て削除したときのエラー

ActionView::Template::Error (can not load translations from /Users/・・・/taskleaf/config/locales/ja.yml: #<Psych::SyntaxError: (<unknown>): mapping values are not allowed in this context at line 5 column 3>): 7: 8: = form_with model: @task, local: true do |f| 9: .form-group 10: = f.label :name 11: = f.text_field :name, class: 'form-control', id: 'task_name' 12: .form-group 13: = f.label :description app/views/tasks/new.html.slim:10 app/views/tasks/new.html.slim:8

---以上。

該当のソースコード

new.html.silm

1h1 タスクの新規登録 2 3 4.nav.justify-content-end 5 = link_to '一覧', tasks_path, class: 'nav-link' 6 7 8= form_with model: @task, local: true do |f| 9 .form-group 10 = f.label :name 11 = f.text_field :name, class: 'form-control', id: 'task_name' 12 .form-group 13 = f.label :description 14 = f.text_area :description, rows: 5, class: 'form-control', id: 'task_description' 15 = f.submit nil, class: 'btn btn-primary'

ja.yml

1--2020-04-19 17:32:17-- https://raw.githubusercontent.com/svenfuchs/rails-i18n/master/rails/locale/ja.yml 2raw.githubusercontent.com (raw.githubusercontent.com) をDNSに問いあわせています... 151.101.88.133 3raw.githubusercontent.com (raw.githubusercontent.com)|151.101.88.133|:443 に接続しています... 接続しました。 4HTTP による接続要求を送信しました、応答を待っています... 200 OK 5長さ: 5117 (5.0K) [text/plain] 6"ja.yml" に保存中 7 8 0K .... 100% 24.3M=0s 9 102020-04-19 17:32:17 (24.3 MB/s) - `ja.yml' へ保存完了 [5117/5117] 11 12ja: 13 activerecord: 14 errors: 15 messages: 16 record_invalid: "バリデーションに失敗しました: %{errors}" 17 restrict_dependent_destroy: 18 has_one: "%{record}が存在しているので削除できません" 19 has_many: "%{record}が存在しているので削除できません" 20 models: 21 task: タスク 22 attributes: 23 task: 24 id: ID 25 name: 名称 26 description: 詳しい説明 27 created_at: 登録日時 28 updated_at: 更新日時 29 helpers: 30 select: 31 prompt: 選択して下さい 32 submit: 33 create: 登録する 34 submit: 保存する 35 update: 更新する

試したこと

インデントなど徹底的に意識しましたが、今度は別のエラー?が出ました。

補足情報(FW/ツールのバージョンなど)

Rails 6.0.2.2

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hatsu

2020/04/25 05:17

質問を変えてしまうと、対する回答とマッチしなくなる可能性が出てしまいます。 試した結果を回答に返信いただいたり、回答の通りの変更をした際に新たに出たエラーを質問に追記していただけると、分かりやすかったりします。 変更されたエラーについては、ja.yml:の5行目がおかしいと言われています。 例えば、ja.ymlを全て削除すると動きますでしょうか?
tellmeshy

2020/04/27 01:14

ご回答ありがとうございます。返信が遅れて申し訳ありませんでした。今度からは質問に追記するようにいたします。
hatsu

2020/04/27 03:55

ja.yml:の5行目がおかしいと言われています。 例えば、ja.ymlの中身を全て削除すると動きますでしょうか?
tellmeshy

2020/04/27 04:14

ja.ymlの中身を削除した場合に添付画像のアラームがブラウザで出ました。
hatsu

2020/04/27 04:25

承知しました。 mapping values are not allowed in this context at line 5 column 3> とあるように、ymlにエラーがあるようです。 5行目を削除または、ダブルクオーテーションに直すなど見直してください。
tellmeshy

2020/04/27 07:37

5行目を削除したら今度は12行目でエラーとの表示が出ました。「:」を受付ないようなエラーにみえます。
guest

回答3

0

ja:より上を消去したところ解決できました。

ーーー修正前ーーー

ja.yml

1--2020-04-19 17:32:17-- https://raw.githubusercontent.com/svenfuchs/rails-i18n/master/rails/locale/ja.yml 2raw.githubusercontent.com (raw.githubusercontent.com) をDNSに問いあわせています... 151.101.88.133 3raw.githubusercontent.com (raw.githubusercontent.com)|151.101.88.133|:443 に接続しています... 接続しました。 4HTTP による接続要求を送信しました、応答を待っています... 200 OK 5長さ: 5117 (5.0K) [text/plain] 6"ja.yml" に保存中 7 8 0K .... 100% 24.3M=0s 9 102020-04-19 17:32:17 (24.3 MB/s) - `ja.yml' へ保存完了 [5117/5117] 11 12ja: 13 activerecord: 14 errors: 15 messages: 16 record_invalid: "バリデーションに失敗しました: %{errors}" 17 restrict_dependent_destroy: 18 has_one: "%{record}が存在しているので削除できません" 19 has_many: "%{record}が存在しているので削除できません" 20 models: 21 task: タスク 22 attributes: 23 task: 24 id: ID 25 name: 名称 26 description: 詳しい説明 27 created_at: 登録日時 28 updated_at: 更新日時 29 helpers: 30 select: 31 prompt: 選択して下さい 32 submit: 33 create: 登録する 34 submit: 保存する 35 update: 更新する

ーーーーーーーーー

ーーー修正後ーーー

ja.yml

1ja: 2 activerecord: 3 errors: 4 messages: 5 record_invalid: "バリデーションに失敗しました: %{errors}" 6 restrict_dependent_destroy: 7 has_one: "%{record}が存在しているので削除できません" 8 has_many: "%{record}が存在しているので削除できません" 9 models: 10 task: タスク 11 attributes: 12 task: 13 id: ID 14 name: 名称 15 description: 詳しい説明 16 created_at: 登録日時 17 updated_at: 更新日時 18 helpers: 19 select: 20 prompt: 選択して下さい 21 submit: 22 create: 登録する 23 submit: 保存する 24 update: 更新する

ーーーーーーーーー

投稿2020/04/28 15:16

tellmeshy

総合スコア1

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

slim はインデント命です。
インデントを深くするとその前の行の
・tag の子供になる(<tag>...</tag> の中にくるまれる)
・rubyプログラムのblockになる( do .... end の中になる)
などになります。
動きがおかしかったら
・全角空白、TAB は無いか、
・インデントは親子関係の通りになっているか
をまず確かめてください

投稿2020/04/24 07:35

winterboum

総合スコア23284

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tellmeshy

2020/04/27 01:27

winterboum様ご回答ありがとうございます。slimはインデントが命を肝に銘じて気をつけます。
guest

0

ベストアンサー

app/views/tasks/new.html.slim:16: syntax error, unexpected '='

とエラー文にあるように、16行目が怪しいです。
16行目ではf.から始まっています。
この fはform_withで発生した変数です。

form_withよりも深いインデントにしてあげてください。
また =fのスペースは1つにしてください。

= form_with model: @task, local: true do |f| .form-group = f.label :name = f.text_field :name, class: 'form-control', id: 'task_name' .form-group = f.label :description,   = f.text_area :description, rows: 5, class: 'form-control', id: 'task_description', = f.submit nil, class: 'btn btn-primary'

I18n::InvalidLocaleDataのエラー

'バリデーションに失敗しました: %{errors}'

の部分、ダブルクオーテーションに直すといかがでしょうか。2箇所あるため2箇所修正ください。

投稿2020/04/23 14:32

編集2020/04/27 04:22
hatsu

総合スコア1809

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問