我正在尝试将数据从csv文件导入postgresql,如下所示。
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?)
{
if touches.count == 1
{
initialTouchLocation = (touches.first?.locationInView(self).x)!
}
}
override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?)
{
if touches.count == 1
{
let locationInView = touches.first?.locationInView(self)
if !thresholdHit
{
//this is the threshold for x movement in order to trigger the panning...
if abs(initialTouchLocation - locationInView!.x) > 1
{
thresholdHit = true
}
}
else
{
if (self.frame.width != CGFloat(screenSize))
{
let panDelta = initialTouchLocation - locationInView!.x
}
}
}
}
但我得到了这样的错误。
csv = CSV.open(path, { col_sep: ',', headers: :first_row })
MatchDB.db.copy_into(:property,
data: csv,
format: :csv
)
任何人都知道如何解决这个问题?
答案 0 :(得分:0)
正如您在Sequel
’s tests中看到的那样,Database#copy_into
方法需要一个字符串,其中列以逗号分隔,行以行分隔符\n
分隔。
您正在尝试传递一个ruby内部CSV
表示,这通常是一种数组数组。我不是红宝石CSV
中的大师,但要用它制作一个正确的字符串,可以使用:
csv.map { |row| row.join ',' }.join "\n"
总结:
csv = CSV.open(path, { col_sep: ',', headers: :first_row })
MatchDB.db.copy_into(:property,
data: csv.map { |row| row.join ',' }.join "\n",
format: :csv
)