2012-08-31 57 views
3

使用faker gem與rails生成一些僞造的數據。當我使用faker :: lorem時,輸出包括字符串前面的破折號。爲什麼faker :: lorem的輸出在字符串的開頭產生破折號?

namespace :db do 
    desc "Fill database with sample data" 
    task populate: :environment do 
    7.times do |l| 
     line = Line.create!(sentence: Faker::Lorem.sentences(2)) 
    end 
    end 
end 

像:

--- 
- Odit consectetur perspiciatis delectus sunt quo est. 
- Tempore excepturi soluta aliquam perferendis. 

任何想法,爲什麼這個函數返回的Lorem破折號?最簡單的方法是將它們去掉?

+0

我想我想通了。 Lorem.sentences返回一個數組。當我在末尾添加.join(「」)時,破折號消失了,並且它正確讀取。破折號必須是當您嘗試將數組放入字符串時發生的情況。 –

+1

它實際上是轉換爲字符串時生成YAML的gem。 – deefour

回答

3

正如Kevin和Deefour在評論中提到的,Faker :: Lorem返回一個數組。

由於我們要求Ruby將它存儲在一個字符串中,Ruby根據YAML的指導原則解釋它,這是一種用文本表示數據結構的方法。

如果遇到此問題,最簡單的解決方法是使用Ruby內置的數組到字符串轉換方法.join(x),該方法以字符串x作爲要添加的分隔符。

相關問題