2011-05-03 99 views
1

我已經使用回形針爲文本文件上傳了一個非常簡單的文件。從用文件夾上傳的文件中獲取文本

我想要做的是獲取文本文件的第一行,並將其轉化爲哈希,我可以在數據庫中進行搜索。

我不認爲保存文件,然後檢索它,創建哈希,然後再保存它是沒有多大意義的。

我似乎無法弄清楚如何在保存前獲取附件的文本。

我的控制器是目前

 

def create 
    @upload = Upload.new(params[:upload]) 
    @upload.user_id=current_user.id 
    #get the first line of the uploaded file 

    if @upload.save 
     redirect_to @upload, :notice =>'Successfully uploaded file." 
     else 
     render :action => 'new' 
     end 
end 

通過文件去相當簡單,我已經看到了回形針有to_tempfile,我以爲我可以讀入一個字符串,但我似乎無法找到能告訴我如何去做的地方。

回答

2

如果params[:upload]是在表單中的file_field_tag,那麼它更容易繞過回形針,直接使用Rails檢索文件的第一行,只是這樣做:

first_line = params[:upload].tempfile.readline 
+0

傑森,當你說「旁路回形針」 ,你的意思是完全刪除回形針嗎?我嘗試了你的解決方案(這似乎正是我正在尋找的),但我得到了未定義的方法'tempfile'爲# pedalpete 2011-05-03 22:05:59

+0

完全基於你的錯誤,嘗試只是:'params [:upload] .readline'而「繞過」我只是不想用它來做這個** - 不管你是否刪除它,如果這就是你所使用的那個, d說是的:) – smathy 2011-05-03 22:34:37

+0

謝謝賈森,我使用回形針不僅僅是得到第一行,我確實需要存儲上傳的文件,所以我會離開它。但是爲了使這個工作正常,我嘗試了標準的file_field_tag,然後是你提供的和沒有readline的代碼,不幸的是,我仍然得到了未定義的方法錯誤。 – pedalpete 2011-05-03 23:33:40

相關問題