2012-06-07 25 views
1

我正在尝试查找关于如何将通过cloudinary上传的图像关联到特定用户的文档,该用户将允许用户上传它们,但不允许其他用户删除等。然而,图像应该可以随时公开查看。我是比较新然而,轨道基本上我试图复制使用cloudinary:与用户关联的Cloudinary图像

class Image 

    belongs_to :user 

end 

class User 

    has_many :images 

end 

显然,代码是不完整的只是想表明我试图达到的关联,如果这是一个合适的方式代表关系。如果任何人有更好的解决方案的建议,或者可以指向我处理一个像这样的问题的文档的方向,它将非常感激!

回答

4

假设您使用CarrierWave with Cloudinary来管理您的Rails模型的上传。您需要定义一个上传类并将其挂载到您的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 documentation

关于图像删除:您的web应用程序可能允许用户管理图像。只需删除图像记录就会自动删除上传到Cloudinary的远程图像。例如:

user.images.last.destroy