2016-08-04 52 views
0

我對上載的Excel文件中的軌道發動機的工作,驗證它,如果沒有錯誤比將它保存到數據庫中。的Rails上傳excel文件,驗證和保存

現在,當用戶安裝發動機而不是進入發動機提供的路線時。他將會有一個表格來上傳excel文件。頁面上有兩個按鈕,即uploadvalidate

一旦用戶選擇文件時,他就上傳點擊我想,文件只被上傳並沒有得到保存在數據庫中。一旦我得到消息文件上傳成功,比我會驗證文件。如果它是一個有效的excel文件,並且將其保存到數據庫中。現在我沒有得到如何去做。我看到的上傳csvexcel文件,但在這裏,他正在執行驗證和保存操作與import行動,但我想驗證,當用戶點擊validate行動保存操作這個Railscasts視頻。 This Questions似乎與我的問題類似,但我沒有得到如何訪問該上傳的文件。我不希望該文件被保存在數據庫中。我的意思是當用戶點擊上傳按鈕時,該文件只上傳而不保存。比我會驗證該文件並將其內容保存到分貝。

這似乎非常容易和簡單了一些專家的問題,但我很新的軌道,我不知道如何去做。

有人請幫我一個示例代碼,以便我能理解工作流程。另請注意,上傳和驗證操作都在同一頁面上。所以當一個文件上傳時,它需要暫時存儲在某個地方,這是我面臨的第一個問題。如果有人可以通過關於上傳Excel文件的示例代碼告訴我工作流程,我可以完成所有任務。我只在這裏遇到問題,因爲上傳和驗證操作都在同一個頁面上,所以在上傳請求之後,它需要在該頁面上,以便我可以驗證該文件。

任何幫助將不勝感激,我非常初學者在鐵軌和真正困惑在這裏。

回答

0

兩個選項:

  1. 編寫代碼上傳文件並保存到數據庫與validated列設置爲false。然後,'驗證'按鈕將找到未驗證的文件,驗證它並將validated設置爲true。您可以定期刪除某個年齡段的未驗證文件。如果你這樣做,使用像回形針一樣的輔助寶石。

  2. 放棄文件上傳框架,只是手動上傳文件保存到Tempfile.new 'spreadsheet'This guide帶您瞭解如何做到這一點。將該文件名保存到session並在稍後使用它進行驗證。當你終於準備堅持DB時,再考慮使用助手寶石。

+0

實際上解決了這個問題。我感到困惑,但已經完成了。感謝您的回覆。 – Sinscary