2012-06-07 29 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