2014-01-21 38 views

回答

26

YAML spec說:

YAML使用三個破折號(「---」)來分隔文檔內容的指令。如果沒有指令存在,這也用於指示文檔的開始。

例子:

# Ranking of 1998 home runs 
--- 
- Mark McGwire 
- Sammy Sosa 
- Ken Griffey 

# Team ranking 
--- 
- Chicago Cubs 
- St Louis Cardinals 

所以如果你有每個YAML文件多個文檔,你有三個短線將它們分開。如果你只有一個文檔,你可以刪除/省略它(如果缺少三個破折號,我從來沒有在Ruby中使用YAML的問題)。當你對對象進行優化時,它被添加的原因是,我猜,自動翻譯器是「按規範」編寫的,並不在乎實現這種「快捷方式」(當它只有一個文檔時,省略三個破折號)。

+0

我只有一個文件,每次修改文件時如何刪除它。 – Ava

+4

你可以只是'yaml.gsub(「--- \ n」,'')'。 –

+0

請參閱https://www.ruby-forum.com/topic/183679 –