上传是用carrierwave的 上传了一个 pdf,想在前端显示上传 pdf 的文件名,可提取出来是/uploads/pdf/16/Ubuntu_MySQL.pdf 这个怎么就截取后面的文件名
carrierwave
/uploads/pdf/16/Ubuntu_MySQL.pdf
正则就行了…
@cassiuschen 怎么写的吗
File.basename ?? http://www.ruby-doc.org/core-2.1.0/File.html#method-c-basename
#2 楼 @yeyong14 我 Ruby 写得不怎么好……只想到这么表达: /\/(\w{3,})\.pdf/……前提是文件名大于三个字符………你还是用 @iBachue 的方法吧……
/\/(\w{3,})\.pdf/
@iBachue no implicit conversion of pdfUploader into String
name.split("/")[-1].to_s
@liprais NoMethodError: undefined method `split' for #PdfUploader:0xbbc5b50,现在就是不知道怎么从 carrierwave 中提取文件路径。
pro.pdf => #<PdfUploader:0xbbc5b50 @model=#<Product id: 16, title: "fgkasgdhs", number: nil, pdf: "Ubuntu_MySQL.pdf", video: nil, color: nil, listtext: "", techparams: "", detail: "", created_at: "2014-01-14 00:21:45", updated_at: "2014-02-18 02:54:01", tag_id: 22, outline: "", category_id: 6>, @mounted_as=:pdf, @storage=#<CarrierWave::Storage::File:0xbbc5808 @uploader=#<PrintpdfUploader:0xbbc5b50 ...>>, @file=#<CarrierWave::SanitizedFile:0xbbc54ac @file="/home/york/yolift/public/uploads/product/ppdf/16/Ubuntu_MySQL.pdf", @original_filename=nil, @content_type=nil>, @versions={}>
@liprais @cassiuschen @iBachue 谢谢大家的帮助,搞定了,File.basename(pro.pdf_url)
直接 pro.pdf.file.filename就可以了
pro.pdf.file.filename