2011-05-25 88 views

回答

4

保存Excel电子表格为CSV文件,然后使用CSV解析器,也许在耙文件:

在LIB/TAKS/import.rake:

require 'fastercsv' 
namespace :import => :environment do 
    task :questions do 
    FasterCSV.foreach("path/to/file.csv") do |row| 
      q = Question.create(:question=>row[0], etc...) 
      PossibleAnswer.create(:question=>q, :answer=>row[1], etc....) #providing PossibleAnswer belongs_to Question 
     end 
    end 
end 

然后运行“耙进口:问题”

+0

谢谢你的回答......我是RoR的新手。你可以告诉模型应该是什么样的使用这个耙文件... – user558138 2011-05-25 09:31:29

+0

它可以与任何模型一起工作,只需用你的字段名称替换圆括号中的位 – Yule 2011-05-25 09:46:25

+0

我得到未初始化的常量问题在耙子导入:问题 – user558138 2011-05-25 10:18:47

1

您可以使用电子表格宝石从Excel文件中的数据读取: http://rubygems.org/gems/spreadsheet

这是如果你想允许用户上传他们自己的Excel文档,导入一些问题,或者如果你希望用户能够以excel文件格式下载问题,这是最有用的。

如果你只是想做一次性的一些数据导入,我会和尤尔的想法一起去做,而且只是通过csv来完成,这很容易掌握。

+0

我已经安装了这个gem,但不知道如何使用它,我无法找到任何教程。 – user558138 2011-05-25 09:33:24

+0

它实际上很好记录,即有一个很好的rdoc。我发现读这些的最好方法是启动一个gem服务器并在浏览器中查看它。 'gem server',然后在浏览器中转到'localhost:8808',点击'电子表格',然后点'rdoc'。 GUIDE链接有很多有用的例子。 – 2011-05-25 09:43:03

相关问题