为什么我会得到'`解析';:(<;未知>;):在此上下文中不允许映射值';在Ruby中的YAML文件中

为什么我会得到'`解析';:(<;未知>;):在此上下文中不允许映射值';在Ruby中的YAML文件中,ruby,yaml,ruby-2.0,Ruby,Yaml,Ruby 2.0,我在尝试用Ruby打开Yaml文件时遇到上述错误。我已经在这个验证器中检查了YAML,它已经通过了。我不确定我的YAML有什么问题会阻止它打开。有什么想法吗?这是YAML文件。我正试图用yml=YAML::load(file.open('servers.yml'))打开文件。 您的问题在于没有冒号的行: - ps-overture-d01 location: ps-overture-d01 将它们连接到下一行: ? "ps-overture-d01 location" : ps-o

我在尝试用Ruby打开Yaml文件时遇到上述错误。我已经在这个验证器中检查了YAML,它已经通过了。我不确定我的YAML有什么问题会阻止它打开。有什么想法吗?这是YAML文件。我正试图用
yml=YAML::load(file.open('servers.yml'))打开文件。


您的问题在于没有冒号的行:

  - ps-overture-d01
    location: ps-overture-d01
将它们连接到下一行:

? "ps-overture-d01 location"
: ps-overture-d01
Ruby的YAML库不这样做,而是抛出一个错误。我不确定您是否打算将有问题的行连接起来,因此您需要了解如何正确调整YAML以提供合理的结构,或者将
id:
添加到这些行中的每一行

  - id: ps-overture-d01
    location: ps-overture-d01
以下是您的示例,以及我建议的更改:

---
servers:
  - id: ps-overture-d01
    location: ps-overture-d01
    tomcat_location: /home/tomcat/tomcat/webapps/report/
    user: tomcat
    menus:
      - id: Accounts Receivable
        reports:
          - id: Accounts Receivable Aging Report
            name: AccountsReceivableAgingReport
            location: /public/Common/Reports/Accounts_Receivable_Reports
      - id: Inventory
        reports:
          - id: Inventory Master List Report
            name: InventoryMasterListReport
            location: /public/Common/Reports/Inventory_Reports
          - id: Inventory Totals Report
            name: InventoryTotalsReport
            location: /public/Common/Reports/Inventory_Reports
          - id: Dealer Purchasing Report
            name: DealerPurchasingReport
            location: /public/Common/Reports/Inventory_Reports
          - id: DOA Report
            name: DOAReport
            location: /public/Common/Reports/Inventory_Reports
          - id: Stock Transfers Report
            name: StockTransfersReport
            location: /public/Common/Reports/Inventory_Reports
          - id: Removed Inventory Report
            name: RemovedInventoryReport
            location: /public/Common/Reports/Inventory_Reports
          - id: Inventory Order Sheet Report
            name: InventoryOrderSheetReport
            location: /public/Common/Reports/Inventory_Reports
          - id: Inventory Totals GMROI Report
            name: InventoryTotalsGMROIReport
            location: /public/Common/Reports/Inventory_Reports
          - id: Master Inventory GMROI Report
            name: MasterInventoryGMROIReport
            location: /public/Common/Reports/Inventory_Reports
          - id: Dead Stock Report
            name: DeadInventoryReport
            location: /public/Common/Reports/Inventory_Reports
          - id: Dead Stock Report Details
            name: DeadInventoryReportDetails
            location: /public/Common/Reports/Inventory_Reports
          - id: Negative Quantity Report
            name: NegativeInventoryQTYReport
            location: /public/Common/Reports/Inventory_Reports

你能不能再举一个例子,让我看看我应该怎么做?谢谢。谢谢。这很有帮助。你知道有什么好的资源我可以看YAML在线?
---
servers:
  - id: ps-overture-d01
    location: ps-overture-d01
    tomcat_location: /home/tomcat/tomcat/webapps/report/
    user: tomcat
    menus:
      - id: Accounts Receivable
        reports:
          - id: Accounts Receivable Aging Report
            name: AccountsReceivableAgingReport
            location: /public/Common/Reports/Accounts_Receivable_Reports
      - id: Inventory
        reports:
          - id: Inventory Master List Report
            name: InventoryMasterListReport
            location: /public/Common/Reports/Inventory_Reports
          - id: Inventory Totals Report
            name: InventoryTotalsReport
            location: /public/Common/Reports/Inventory_Reports
          - id: Dealer Purchasing Report
            name: DealerPurchasingReport
            location: /public/Common/Reports/Inventory_Reports
          - id: DOA Report
            name: DOAReport
            location: /public/Common/Reports/Inventory_Reports
          - id: Stock Transfers Report
            name: StockTransfersReport
            location: /public/Common/Reports/Inventory_Reports
          - id: Removed Inventory Report
            name: RemovedInventoryReport
            location: /public/Common/Reports/Inventory_Reports
          - id: Inventory Order Sheet Report
            name: InventoryOrderSheetReport
            location: /public/Common/Reports/Inventory_Reports
          - id: Inventory Totals GMROI Report
            name: InventoryTotalsGMROIReport
            location: /public/Common/Reports/Inventory_Reports
          - id: Master Inventory GMROI Report
            name: MasterInventoryGMROIReport
            location: /public/Common/Reports/Inventory_Reports
          - id: Dead Stock Report
            name: DeadInventoryReport
            location: /public/Common/Reports/Inventory_Reports
          - id: Dead Stock Report Details
            name: DeadInventoryReportDetails
            location: /public/Common/Reports/Inventory_Reports
          - id: Negative Quantity Report
            name: NegativeInventoryQTYReport
            location: /public/Common/Reports/Inventory_Reports