如何在rails中读取txt文件并在显示后保存

时间:2017-05-08 18:19:37

标签: ruby-on-rails ruby

我在Ruby on Rails中有一个应用程序,我需要读取将由用户发送的某个TXT文件,在发送文件后,文件的数据将显示给用户,以便确认是否文件是正确的,如果是,则在保存时,文件包含作为测试答案的字母,每个字母代表一个问题,例如:

“EEDEBACABDBBADAADEADEAB”

即,“1 => E,2 => E,3 => D,4 => E”

但是每个字母必须在不同的列中显示

id | question | answer
1      1          E
2      2          E
1      3          D

此文件将以.txt格式通过表单发送,我希望它已被更好地理解

想法?

1 个答案:

答案 0 :(得分:0)

听起来你真正想做的就是将文本文件扩展为如下记录:

File.read(params[:file].path).chomp.chars.each_with_index do |answer, i|
  Answer.create(question: i, answer: answer)
end

其中params[:file]是以#34;文件"名称上传的文件,而答案是插入这些文件的模型。

通常在Rails中你有一个关系结构,如:

class Quiz < ActiveRecord::Base
  has_many :answer_sets
  has_many :questions
  has_many :answers, through: :answer_sets
end

class Question < ActiveRecord::Base
  belongs_to :quiz
  has_many :answers
end

class AnswerSet < ActiveRecord::Base
  belongs_to :quiz
  has_many :answers
end

class Answer < ActiveRecord::Base
  belongs_to :answer_set
  belongs_to :quiz
end

这允许多个测验,每个测验都有多个问题,然后是一系列答案集,每个答案集都包含多个答案。