我有这个代码来保存用 nokogiri 和机械化刮擦的图像:
img_url = agent.page.at(".field-content a")[:href]
root_img_url = URI.join(page_url,img_url).to_s
cover = File.basename(URI.decode(root_img_url))
file = File.open(File.join(Rails.root, 'app', 'assets', 'images', cover), 'wb') { |f|
f.write(open(root_img_url).read)
}
Book.create(
:cover => cover
)
在我看来,我有:
<%= image_tag book.cover %>
我的问题是某些文件名最终看起来像这样Books'25 b&w_chap 01_.jpg而我的视图无法显示它们。
我可以做些什么来阅读这些文件并在我的视图中显示?
更新
现在工作添加downcase和gsub,如:
cover = File.basename(URI.decode(root_img_url)).downcase.gsub(/[^\w.jpg]/,"")
这修复了像books25bw_chap01_.jpg这样的文件名
有了这个,下一步是实现 File.rename。
谢谢你的时间。