0
我想導入一個csv文件到我的數據庫,並在幾小時的樂趣後,我已經指出了什麼問題是:備註字段有時引號中,如果我用\""
替換\"
那麼該字段被導入沒有問題。gsub!沒有做任何事情rails耙任務
我寫過一個rake任務來導入csv文件並使用gsub替換\"
與\""
但gsub沒有做任何事情。這裏的rake任務用的完整代碼:
csvproperty.rake
require 'csv'
task :csv_to_properties => [:environment] do
CSV.foreach("lib/assets/wp_realty_listingsdb.csv", :headers => true) do |row|
row[remarks=23].gsub!(/\"/, '\""')
Property.create!(row.to_hash)
end
end
備註字段的第23列(從0開始計數),但我已經對22和24試過沒有運氣。我知道這段代碼的工作原理,因爲我在另一個應用中使用gsub從一個價格字段中刪除了一個逗號,並且它工作正常,爲什麼它不會用\""
替換\"
?
編輯:
例如,對於CSV文件的第8行這個屬性的言論是:
"THIS HOME EPITOMIZES THE VERY ESSENCE OF A PERFECT \"10\"."
的CSV企圖以\"
逃避引號,但還不夠,它必須\""
,因爲如果我運行此命令:
rake csv_to_properties
然後我得到以下錯誤:
rake aborted!
Missing or stray quote in line 8
但是如果我手動將其更改爲\""
那麼錯誤上移動到有報價的下一行:
rake aborted!
Missing or stray quote in line 24
但是,如果我不改變它手動和依靠GSUB使更改錯誤信息仍保留在第8行。爲什麼gsub不是用\""
代替\"
?
我不知道,如果你逃避' 「'或它實際上是'\」'。文本究竟是什麼樣子? 'sometext「或'sometext \」'? – 2013-04-30 04:08:33
見編輯。這個問題不是關於逃避引號,因爲我已經制定了它,它需要是「」,但問題是爲什麼不是gsub按照它的說法行事? – railsy 2013-04-30 05:19:19
我不知道爲什麼它沒有保存。試試'gsub!('''',''「)'。 – 2013-04-30 05:40:52