我使用paperclip为文本文件上传了一个非常简单的文件。
我想要做的是获取文本文件的第一行并将其转换为我可以在数据库中搜索的哈希。
我认为保存文件,然后检索它,创建哈希值,然后再次保存它是没有多大意义的。
我似乎无法弄清楚如何在保存之前获取附件的文本。
我的控制器目前相当简单
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_temp文件,我假设我可以读成一个字符串,但我似乎找不到任何能告诉我如何做到这一点。
答案 0 :(得分:2)
如果params[:upload]
是您表单中的file_field_tag
,则可以更轻松地绕过Paperclip并使用Rails直接检索文件的第一行,只需执行以下操作:
first_line = params[:upload].tempfile.readline