我目前正在使用 Carrierwave,并希望能够将原始文件名保存为我的模型文档的标题。我看到当我提交文档 uploader 表单时,文件名保存为@original_filename。
我将如何访问它?我尝试了 params[:document][:attachment][:original_filename] ,但“@”让我感到困惑。
此外,我想将文件名保存为硬标题的主要原因是,如果我使用 Document.attachment.file.filename,它有时会显示为“6sw=&Expires=1409522546”而不是文件名,可能是因为文件上传到 S3 时添加的随机扩展名
参数:
{"utf8"=>"✓", "authenticity_token"=>"f67R1N2JR0b4WDWeYfSzI8q3DKwK59y487TXhR4xYvo=", "文档"=>{"附件"=>#, @original_filename="1 文件.png", @content_type="图片/png", @headers="Content-Disposition: form-data; name=\"document[attachment]\"; filename=\"1 documents.png\"\r\nContent-Type: image/png\r\n">} , “提交”=>“上传文件”
最佳答案
params[:document][:attachment]
返回一个封装上传文件的对象。所以我认为这会起作用:
uploaded_file = params[:document][:attachment]
uploaded_file.original_filename # => returns the file name
关于ruby-on-rails - ruby rails : How would I access this Carrierwave @original_filename params?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25596671/