2016-02-12 70 views
0

我用下面的代碼來嘗試導入CSV文件導入軌道。 (它是由埃裏克on Rails的博客提供)我收到一個錯誤導入CSV文件,Ruby on Rails的

#lib/tasks/import.rake 
desc "Imports a CSV file into an ActiveRecord table" 
task :csv_model_import, :filename, :model, :needs => :environment do |task,args| 
    lines = File.new(args[:filename]).readlines 
    header = lines.shift.strip 
    keys = header.split(',') 
    lines.each do |line| 
    values = line.strip.split(',') 
    attributes = Hash[keys.zip values] 
    Module.const_get(args[:model]).create(attributes) 
    end 
end 

然後我跑耙耙任務csv_model_import [excelfilename.csv,名字]。我已經嘗試了很多方法,但似乎無法將csv文件放入我的db/active記錄中。我收到

錯誤: 「NoMethodError:未定義的方法`圖」爲:需求:符號」

我不知道如何解決這個問題。請幫幫我,謝謝。

回答

0

我認爲你需要在你的rake任務論據括號。

嘗試改變這一點:

task :csv_model_import, :filename, :model, :needs => :environment do |task,args| 

這樣:

task :csv_model_import, [:filename, :model, :needs] => :environment do |task,args| 
+0

使變革,只好也把[:環境]到方括號。現在它失敗了。我運行rake命令,它不創建表格。運行後,我的模式文件仍然爲空。 – akaras222

+0

有時間在那裏放置一些'puts'語句來查明發生了什麼。如果你使用pry,你也可以使用'binding.pry'語句來調試。 – msergeant