gpt4 book ai didi

ruby-on-rails-3 - 使用 FasterCSV 导入 CSV 文件时出现问题

转载 作者:行者123 更新时间:2023-12-02 00:35:00 25 4
gpt4 key购买 nike


我是 Rails 的新手,我已经弄清楚了如何从我的数据库中导出结果,但是我在从 CSV 文件创建新记录时遇到了问题。使用下面列出的代码,我希望能够导入 CSV 文件并使用来自用户的 session 数据填充最后两列。现在我只是插入了一个静态数字来尝试让它工作。我目前收到“无法将 ActionDispatch::Http::UploadedFile 转换为字符串”的错误消息

CSV 文档

名称、任务、预期结果、要求 ID测试名称 1,Open a File,Open,t测试名称 2,Read a File,Read,t测试名称 3,关闭一个文件,Close,f

Controller

  def csv_import  
file = params[:file]
FasterCSV.foreach(file,{:headers => true, :row_sep => :auto}) do |row|
Script.create!(:name => row[0],
:task => row[1],
:expected_results => row[2],
:require_id => row[3],
:department_id => 1,
:category_id => 1)
end
end

查看

<%=form_tag '/script_admin/csv_import', :multipart => true do%>
<%= file_field_tag "file" %><br/>
<%= submit_tag("Import") %>
<% end %>

数据库迁移

class CreateScripts < ActiveRecord::Migration
def self.up
create_table :scripts do |t|
t.integer :department_id, :null => false
t.integer :category_id, :null => false
t.string :name, :null => false
t.string :task, :null => false
t.string :expected_results, :null => false
t.boolean :require_id, :null => false, :default => "t"
t.timestamps
end
end

def self.down

drop_table :scripts

结束结束

如有任何帮助,我们将不胜感激

~凯尔

最佳答案

感谢 James Gray,问题已解决

  def csv_import
file = params[:file]
FCSV.new(file.tempfile, :headers => true).each do |row|
Script.create!(:name => row[0],
:task => row[1],
:expected_results => row[2],
:require_id => row[3],
:department_id => 1,
:category_id => 1)
end
end

关于ruby-on-rails-3 - 使用 FasterCSV 导入 CSV 文件时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5012382/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com