我是Ruby on Rails的新手。
我想编写一个模块,用于在我的应用程序中上传CSV文件。另外,我想将该文件中的数据导入到我的Rails应用程序中的一个表中。
在我的应用程序中有一个名为“Book”的模型,它有四个字段:name
,author
,publication_date
和publisher_name
。
我想让用户能够使用以下格式上传CSV文件:
name
author
publication_date
publisher_name
的第四名。此外,我想添加验证,以便仅在文件具有预期格式时才会进行上传。
答案 0 :(得分:0)
你需要一个FasterCSV gem才能做到这一点。首先安装它,然后在你的模型中这样做:
require 'csv'
validates_format_of :book, :with => /^.+\.(csv)$/,
:message => 'A .csv file is required.'
records = CSV.foreach('yourpath/tocsvfile/filename.csv').map do |row|
Book.create!({
:name => row[0],
:author => row[1],
:publication_date => row[2],
:publisher_name => row[3],
})
end
有关CSV的更多信息,您可以找到它here
希望它有帮助!