导轨的自定义标题4 CSV导入

即时通讯添加导入function,我的导轨应用程序..我想有能力导入用户,但我的用户表列是短手即。 f_name =冷杉名称l_name =姓氏等..我想创build一个导入工具,用户可以从应用程序下载并填写以节省时间在初始用户导入(这也将用于其他模型。 。)有什么办法可以设置导入方法来读取自定义标题? 我试图找出这个,但没有回头。 也许这就是我如何解释这个问题?

因为它现在的importfunction正在工作,但谁真的想要一个讨厌的平原看excel表..

我的导入控制器操作:

def import User.import(params[:file]) redirect_to users_path, notice: 'Users Added Successfully' end 

我的导入类function:

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

您可以创build一个方法来自己replace标题。 将文件读入内存,改变第一行。 然后运行CSV.foreach 。 我相信有一个更好的方法来缩进这个…

 def self.headers {"last name" => "l_name", "first name" => "f_name"} end def self.import(file) CSV.parse(self.parse_headers(file), headers: true) do |row| User.create! row.to_hash end end def self.parse_headers (file) File.open(file) { |f| first_line = f.readline self.headers.each { |k,v| first_line[k] &&= v } first_line + f.read } end