2012-02-08 15 views
5

की अनुमति नहीं है मुझे FasterCSV और मेरे रेक डीबी: बीजों माइग्रेशन के साथ कोई समस्या है। मैं त्रुटि मिलती है: "रेक निरस्त किया गया गैर उद्धृत क्षेत्रों \ r या \ N (लाइन 2) की अनुमति नहीं है!" निम्नलिखित seeds.rb डेटा पर:रेल FasterCSV "unquoted फ़ील्ड r या n"

require 'csv' 

directory = "db/init_data/" 

file_name = "gardenzing020812.csv" 
path_to_file = directory + file_name 
puts 'Loading Plant records' 
# Pre-load all Plant records 
n=0 
CSV.foreach(path_to_file) do |row| 
    Plant.create! :name => row[1], 
    :plant_type => row[3], 
    :group => row[2], 
    :image_path => row[45], 
    :height => row[5], 
    :sow_inside_outside => row[8] 
n=n+1 
end     

मैं इस के लिए एक समाधान के लिए खोज की है समस्या और पता चला है कि बहुत से लोगों के लिए यह एक यूटीएफ -8 एन्कोडिंग समस्या है। मैंने iconv की आवश्यकता है और: एन्कोडिंग => 'यू', लेकिन फिर मुझे त्रुटि "यूटीएफ -8 में अमान्य बाइट अनुक्रम" त्रुटि देता है।

मैं एक नौसिखिया हूं, और मैं यह नहीं समझ सकता कि यह वास्तव में एक एन्कोडिंग समस्या है जिसे मुझे क्रैक करने की आवश्यकता है (जो मैं असफल होने की कोशिश कर रहा हूं और यदि ऐसा है, तो मैं वास्तव में कुछ मार्गदर्शन का उपयोग कर सकता हूं) या , मुझे लगता है कि, मैंने एक साधारण गलत तरीके से किया है और जिस तरह से मैंने बीज स्थापित किया है, कुछ गलत किया है। संभवतः मेरी एक्सेल -> सीएसवी फ़ाइल। सीएसवी फ़ाइल में कोई बुरा या अजीब डेटा नहीं है। यह एक आसान शब्द-शब्द, पाठ और पूर्णांक है। कृपया सहायता कीजिए!

+0

क्या आप हमें दिखा सकते हैं कि सीएसवी का कौन सा हिस्सा परेशानी पैदा कर रहा है? –

+0

@muistooshort मुझे बताएं कि आपको ज़ूम-इन शॉट की आवश्यकता है या नहीं। यह पूरी तरह से फाइल है। मैंने पोस्ट में अपने seed.rb फ़ाइल को छोटा कर दिया, लेकिन मेरा वास्तविक कोड इस शीट में सभी कॉलम को पार करता है। –

+0

कच्चे सीएसवी को देखने का कोई मौका? –

उत्तर

5

यह सीएसवी में सभी स्वरूपण को साफ़ करने के समान सरल था। एक्सेल में एक सीएसवी फ़ाइल में सहेजने के बाद बहुत सारे प्रारूपण को बनाए रखने की आदत है, जो विफलता का कारण बन रहा था। एक नई सीएसवी फ़ाइल में कोई प्रारूपण के बिना सभी डेटा कॉपी और पेस्ट करने के बाद, यह ठीक था।

1

मेरे पास टिप्पणी करने के लिए पर्याप्त प्रतिष्ठा नहीं है, लेकिन मैं कहना चाहता था कि मैं इस त्रुटि को वेब दिन और रात भर में लंबे समय से देख रहा हूं और आखिरकार टिप्पणियों में समाधान mu is too short द्वारा पाया गया।

अंत में जब मैं अपने सभी मूल्यों के बारे में उद्धरण डालता हूं तो मुझे यह काम करने में मिला।

संपादित करें: उत्तर देने के लिए लिंक !!!Rails FasterCSV "unquoted fields do not allow \r or \n"

+0

क्या आप कम से कम उस पोस्ट को लिंक कर सकते हैं जिसे आपने पाया है ताकि लोगों को 5000 उत्तरों के जवाब देने की आवश्यकता न हो? – Marv

+0

@ मारव मुझे संदेह है कि वे मेरे बारे में बात कर रहे हैं "आप सुरक्षित होने के लिए सभी कॉलम मानों को उद्धृत करना बेहतर होगा।" इस सवाल पर टिप्पणी करें। और मैं 5000 उत्तरों का थोड़ा शर्मीला हूं :) –

+0

@muistooshort ओह। एर, यह पहली उत्तर समीक्षा कतार के माध्यम से हुआ था। मैंने सोचा कि उसे आपके अन्य उत्तरों में से एक समाधान मिला है। मेरी गलती! – Marv

5

इसके बजाय का उपयोग करें gsub। यह सीआरएलएफ और सीआर को एलएफ में परिवर्तित कर रहा है # हमेशा लाइनों को तोड़ें \ n

+0

यह एकमात्र उत्तर है जो मेरे लिए काम करता है। धन्यवाद –

संबंधित मुद्दे