Ruby on rails 在RubyOnRails 4中显示图像的问题
我正在从事Rails 4项目,我需要存储一些用户直接上传的图像,并且我必须能够创建一个图像库,其中单个用户只能查看自己上传的图像 我正在用CArrierWave gem上传文件,一切正常。我已将默认的上载目录(公用文件夹)更改为我的自定义文件夹(/uploads/…),但我认为我无法显示图像,因为无法直接访问“uploads”文件夹,但我不想让公用文件夹上的图像导致我不希望任何人自由访问它们 我的观点代码Ruby on rails 在RubyOnRails 4中显示图像的问题,ruby-on-rails,ruby,ruby-on-rails-4,Ruby On Rails,Ruby,Ruby On Rails 4,我正在从事Rails 4项目,我需要存储一些用户直接上传的图像,并且我必须能够创建一个图像库,其中单个用户只能查看自己上传的图像 我正在用CArrierWave gem上传文件,一切正常。我已将默认的上载目录(公用文件夹)更改为我的自定义文件夹(/uploads/…),但我认为我无法显示图像,因为无法直接访问“uploads”文件夹,但我不想让公用文件夹上的图像导致我不希望任何人自由访问它们 我的观点代码 <div> <%= @photos.each
<div>
<%= @photos.each do |p| %>
<div>
<%= image_tag (p.path_url) %>
</div>
<% end %>
</div>
我的CarrierWave上传器类:
class PhotoupUploader < CarrierWave::Uploader::Base
storage :file
def store_dir
"../app/uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.album_id}"
end
class Photo < ActiveRecord::Base
belongs_to :album
attr_accessible :legend, :path
mount_uploader :path, PhotoupUploader
end
class PhotoUploader
和照片型号:
class PhotoupUploader < CarrierWave::Uploader::Base
storage :file
def store_dir
"../app/uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.album_id}"
end
class Photo < ActiveRecord::Base
belongs_to :album
attr_accessible :legend, :path
mount_uploader :path, PhotoupUploader
end
class-Photo
我怎样才能继续
谢谢您需要直接从控制器提供图像(请参阅关于如何提供图像的问题:): 用法:
<% image_tag "image?image_id=154" %>
如果您不向我们展示一些代码,我们将很难为您提供帮助。另外,您将照片上传到哪里(即Amazon S3)?您是否确实尝试过检索图像?假设您只是覆盖了store\u dir
方法来指定您的自定义文件夹,您只需像平常一样使用retrieve\u from\u store
或url
方法即可。@diasks2这更像是一个概念性的问题,不是密码问题。@graemeclean我试试methods@GraemeMcLean我一直在寻找这些方法,但我不知道如何使用它们。它们是Rails方法还是CarrierWave方法?这与我的情况不同,因为我只有本地存储的文件,我不想像代理一样,通过“成为代理”,你可以控制谁可以查看哪个图像。如果您提供任何静态url,它将对所有用户可用,因为它是静态的……如果我需要返回一系列图像,“image”方法将被调用很多次?对于您指定的每个
标记,调用一次,是的。(就像静态文件一样,每个图像调用一次)当我使用“render”方法时,Rails在哪个文件夹中搜索文件?按照你的建议,我曾经收到过“没有这样的文件或目录”的错误消息。假设我有一个文件位于:my_rails_app/app/uploads/photo/path/1/photo.jpg,我如何在render方法中引用它?