2012-08-14 85 views
0

假設我有這樣的例子:如何解析Yaml中的這個?

Example: 
    number: 
    cuarenta 
    cuarenta y uno 
    cuarenta y dos 
    cuarenta y tres 
    cuarenta y cuatro 
    cuarenta y cinco 
    cuarenta y seis 
    cuarenta y siete 
    cuarenta y ocho 
    cuarenta y nueve 

而且我想解析,這樣我有每這些數字在一起,就像「cuarantaŸnueve」。在YAML中,我很難想象如何做到這一點,因此您將一個與「名詞」相關聯的字符串變成了一個字符串。

我YAML解析器是這樣的:

File.open(Rails.root + 'lib/words/yamlicious.yml', 'r') do |file| 
    YAML::load(file).each do |topic, word_types| 
     temp_topic = Topic.create! name: topic 
     temp_words = word_types.map{|type, words| words.split(' ').map {|word| Word.create type: type, word: word, topics: [temp_topic] } } 
     temp_topic.words << temp_words 
    end 
    end 

通知的split部分會毀掉因爲那時我會得到按我的例子創建爲三個字「cuarenta」,「Y」字,和「UNO 」。

回答

4

要保留換行,你必須使用pipe character

Example: 
    number: | 
    cuarenta 
    cuarenta y uno 
    cuarenta y dos 
    … 

現在你可以split("\n")

+0

啊天啊我從來沒有見過這個!謝謝Stefan! – Trip 2012-08-17 09:07:14

+1

不客氣:-) – Stefan 2012-08-17 09:08:49