2012-11-07 92 views
4

我正在其中导入CSV文件名user.csv.But我面临的问题的应用程序是,它提供了一个错误如何在rails中导入CSV文件?

引发ArgumentError在CsvimportController#进口

错误的参数个数(1 0)

而且CsvimportController的代码是

require 'csv' 
class CsvimportController < ApplicationController 
def import 

results = import('anas.csv') do 
read_attributes_from_file 
end 


end 
end 

我也有给CSV映射器和fastercsv的规范创业板文件。

任何人都可以帮我吗?

任何帮助,将不胜感激..

感谢

+0

请更改操作名称并尝试,因为导入是csv lib的功能,因此您需要提供不同的名称。 –

+0

[Ruby on Rails - 从CSV文件导入数据]的可能重复(http://stackoverflow.com/questions/4410794/ruby-on-rails-import-data-from-a-csv-file) –

回答

2

采取如何从CSV和Excel文件导入数据来看看Railscast 396

smarter_csv项目旨在提供更好的处理CSV文件,所以它值得一看。

0

如果您使用Gem smarter_csv,很容易。

所有你需要做的是这样的:

require 'smarter_csv' 

def import(filename) 
    results = SmarterCSV.process(filename, options_hash) 
end 

,你需要根据documentation of smarter_csv

这里有很多有用的选项,包括标题的操作来指定在options_hash的选项,自定义标题,忽略列和值的类型转换。

如果您的CSV文件很大,您还可以将传入数据分块以进行并行处理。