我目前正在使用Carrierwave并希望能够将原始文件名保存为我的模型文档标题。我看到当我提交文档上传者表单时,文件名保存为@original_filename。
我如何访问此内容?我试过了params [:document] [:attachment] [:original_filename],但是“@”让我感到困惑。
另外,我想将文件名保存为硬标题的主要原因是因为如果我使用Document.attachment.file.filename,它有时会显示为“6sw =& Expires = 1409522546”而不是文件名,可能是因为当文件上传到S3时会添加随机扩展
参数:
{ “UTF8”=> “中✓”, “authenticity_token”=> “中f67R1N2JR0b4WDWeYfSzI8q3DKwK59y487TXhR4xYvo =”, “文件”=> { “附件”=>#, @ original_filename =“1 documents.png”, @ CONTENT_TYPE = “图像/ PNG”, @ headers =“Content-Disposition:form-data; name = \”document [attachment] \“; filename = \”1 documents.png \“\ r \ nConContent-Type:image / png \ r \ n”> }, “commit”=>“上传文件”}
答案 0 :(得分:2)
params[:document][:attachment]
返回一个封装上传文件的对象。所以我认为这会奏效:
uploaded_file = params[:document][:attachment]
uploaded_file.original_filename # => returns the file name