1

我正在尝试查找有关如何将通过 cloudinary 上传的图像与特定用户相关联的文档,该特定用户将允许上传它们的用户删除等,但不允许其他用户删除。但是,图像应该随时可供公众查看。我对 Rails 比较陌生,但基本上我正在尝试使用 cloudinary 进行复制:

class Image

  belongs_to :user

end

class User

  has_many :images

end

显然,代码并不完整,只是试图显示我想要实现的关联,如果这是表示关系的合适方式。如果有人对更好的解决方案有建议,或者可以向我指出一些处理此类问题的文档的方向,我们将不胜感激!

4

1 回答 1

4

假设您使用 CarrierWave 和 Cloudinary 来管理 Rails 模型的上传。您需要定义一个上传器类并将其安装到您的 Image 类。假设您的 Image 模型类具有“图片”属性:

class PictureUploader < CarrierWave::Uploader::Base

  include Cloudinary::CarrierWave

  version :thumbnail do
    process :resize_to_fit => [50, 50]
  end

end


class Image

  belongs_to :user

  mount_uploader :picture, PictureUploader

end

每个用户都有多个图像记录,每个记录都包含对正在上传的实际图像的引用。对于嵌入这样的图像:

<%= image_tag(user.images[0].picture_url) %>

或缩略图:

<%= image_tag(user.images[0].picture_url(:thumbnail)) %>

有关更多详细信息,请参阅Cloudinary 文档

关于图像删除:您的 Web 应用程序可能允许用户管理图像。简单地删除图像记录将自动删除上传到 Cloudinary 的远程图像。例如:

user.images.last.destroy
于 2012-06-11T09:55:02.043 回答