8

Rails (3.2.7) アプリケーションで次の YAML を解析しようとしています。

---
main-menu:
  - mitem: Test1
    controller: user
    action: test
  - mitem: Test
    controller: user
    action: test2
    - mitem: Test3
      controller: user
      action: test

残念ながら、ファイルをロードするとまっすぐ

    require "yaml"
    @menu = YAML.load_file(file)

エラーが発生する

Psych::SyntaxError in User#test

Showing /srv/http/fiss/app/views/layouts/application.html.haml where line #12 raised:

(/srv/http/fiss/app/assets/yaml/menu.yaml): did not find expected key while parsing a     block mapping at line 6 column 5

Rails (および YAML) は初めてですが、YAML Lintでコードを確認したところ、YAML コードは有効なようです。これは何が原因ですか?

4

4 に答える 4

27

最初に行う最善の方法は、http: //yamllint.com/から yaml ファイルを実行することです。

于 2013-07-19T18:52:02.363 に答える
7

Try

main-menu:
  - mitem: Test1
    controller: user
    action: test
  - mitem: Test
    controller: user
    action: test2
    children:
      - mitem: Test3
        controller: user
        action: test
于 2012-07-31T15:47:45.760 に答える
2

インデントの問題があります。意味ですか

main-menu:
  - mitem: Test1
    controller: user
    action: test
  - mitem: Test
    controller: user
    action: test2
  - mitem: Test3
    controller: user
    action: test
于 2012-07-31T15:38:05.850 に答える
0

キー値の前に余分なスペースまたは少ないスペースが必要な YAML をチェックインすると、これが役に立ちました。

于 2016-06-03T01:28:43.423 に答える