gpt4 book ai didi

mysql - 将用户 .csv 文件中的数据导入表中

转载 作者:可可西里 更新时间:2023-11-01 09:05:13 27 4
gpt4 key购买 nike

在 Ruby on Rails 网络应用程序中,我想从用户导入一个 .csv 文件,并且 .csv 文件中存在的数据将被插入到 questions 表中,但我运行应用程序时出现错误。

当我删除在 question.rbhtml.erb 文件中编写的代码时,应用程序运行正常。

Controller 代码:questions_controller.rb

class QuestionsController < ApplicationController
filter_access_to :all

def import
@question = Question.new
@question.import(params[:file])

CSV.foreach(file.path, headers: true) do |row|
@question.save! row.to_hash
end

redirect_to root_url, notice: "Questions imported succefully."
end

end

模型代码:问题.rb

def self.import(file)
CSV.foreach(file.path, headers: true) do |row|
@question.save! row.to_hash
end
end

查看代码:question_type_listing.html.erb

<fieldset class="formContainer">
<legend><%=t('question.select_qtype_cat')%></legend>

<%= form_tag({:action => "import"}, {:id => "class_form"}, multipart: true) do %>

<span style="width: 130px; float: left;"><p><label for="upload_file">Select File</label> :</span>
<%= file_field_tag :file %>
<%= submit_tag "Import CSV" %>
<% end %>

</fieldset>

有人可以建议解决此问题的方法吗?

最佳答案

案例 1:

如果您试图将所有问题保存在 .csv 中,则只能通过以下 Controller 来实现 questions_controller.rb代码,和 question.rb函数 import不需要:

def import
file = params[:file]

CSV.foreach(file.path, headers: true) do |row|
@question = Question.new
@question.save! row.to_hash
end

redirect_to root_url, notice: "Questions imported succefully."
end

案例 2:

如果您希望代码在模型中(Rails 约定),请编写 Controller questions_controller.rb :

def import
Question.import(params[:file])
redirect_to root_url, notice: "Questions imported succefully."
end

和型号question.rb

def self.import(file)
CSV.foreach(file.path, headers: true) do |row|
question = Question.new
question.save! row.to_hash
end
end

关于mysql - 将用户 .csv 文件中的数据导入表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32118850/

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