想要确保只有登录的用户才能查看/下载从carrierwave上传的文件。确保Carrierwave上传的文件
这是如何完成的?
将商店目录从公共移动到RAILS_ROOT,创建显示和下载的路线。
问题是如果它的图像,<%= image_tag(photo.image_url) %>
我得到完整路径/Users/myname/projects/appname/files/image/id/image.png,所以不会渲染。
此外,如果视图不会渲染我的绝对路径,只是从站点的相对路径,会很好。
已经看到了这篇文章,并要求我将store_dir从公共移除,但我认为我做错了什么。 store_dir是“/#{Rails.root.to_s}/files/#{model.class.to_s.underscore}/#{mounted_as}/#{model.customer_id}/#{model.id}”。继续得到ActionController :: RoutingError(没有路由匹配“/Users/.../42/142/thumb_9-cars.jpg”) – pcasa 2011-05-22 22:38:00
是的,你将不会有一个路径在web应用程序中使用该路径的文件,这是为什么你使用send_file ...所以你可以将它指向一个常规的文件系统路径。如果carrierwave将文件存储在文件系统中,并且image_url是正确的路径。一切都应该工作。请记住,您要将图像标记指向输出图像的控制器的路径,而不是实际的图像路径。 – quest 2011-05-22 22:46:20