如何在不保存的情况下上传文本文件,并使用RoR将内容解析到数据库中

时间:2012-05-20 10:45:49

标签: ruby-on-rails ruby file parsing upload

我需要上传文本文件而不将其保存在数据库中。我的目标是上传此文件,并自动获取您的内容并将其保存在我的数据库中。

我的文件:data.txt

name age occupation
julio 19 student
ramon 20 student

我的数据库:

class CreateStudents < ActiveRecord::Migration
   def change
     create_table: students do |t|
       t.string "name"
       t.integer "age"
       t.string "occupation"

       t.timestamps
     end
   end
end

有谁知道如何做到这一点?我在互联网上搜索,但没有找到解决方案。我需要帮助。

1 个答案:

答案 0 :(得分:2)

= form_tag url, {multipart: true} do
  = file_field_tag :file
  ....
控制器中的

if params[:file]
  lines = params[:file].tempfile.readlines.map(&:chomp) #readlines from file & removes newline symbol
  lines.shift #remove first line 
  lines.each do |l| 
    m = l.match(/(\S+)\s(\d+)\s(\S+)/) #parse line 
    Student.create {name: m[1],age: m[2], occupation: m[3]}
  end
end