簡體   English   中英

Rails的自定義標題4 CSV導入

[英]Custom headers for rails 4 CSV Import

我在我的rails應用程序中添加了導入功能。我希望能夠導入用戶,但是我的用戶表列是簡寫形式,即。 f_name =冷杉名稱l_name =姓氏,以此類推。.我想創建一個導入工具,用戶可以從應用程序下載並填寫該導入工具,以節省最初用戶導入的時間(這也將用於其他模型)。 。)有什么方法可以設置導入方法以讀取自定義標頭? 我試圖將其搜索出來,但沒有得到太多回報。 也許這就是我對這個問題的措辭?

現在,導入功能可以正常工作了,但是誰真的想要一個看上去很討厭的Excel工作表。

我的導入控制器操作:

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

我的導入類功能:

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

您可以創建一個方法來自己替換標題。 將文件讀入內存,更改第一行。 然后運行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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM