Ruby on Rails:我如何访问这个Carrierwave @original_filename参数?

时间:2014-08-31 21:56:34

标签: ruby-on-rails ruby amazon-s3 carrierwave params

我目前正在使用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”=>“上传文件”}

1 个答案:

答案 0 :(得分:2)

params[:document][:attachment]返回一个封装上传文件的对象。所以我认为这会奏效:

uploaded_file = params[:document][:attachment]
uploaded_file.original_filename # => returns the file name