我在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格式通过表单发送,我希望它已被更好地理解
想法?
答案 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
这允许多个测验,每个测验都有多个问题,然后是一系列答案集,每个答案集都包含多个答案。