1

cloudinaryを介してアップロードされた画像を特定のユーザーに関連付けて、アップロードしたユーザーによる削除などを許可するが、他のユーザーによる削除を許可しない方法に関するドキュメントを見つけようとしています。ただし、画像は常に公開されている必要があります。私はRailsに比較的慣れていませんが、基本的にcloudinaryを使用して複製しようとしています。

class Image

  belongs_to :user

end

class User

  has_many :images

end

明らかに、これが関係を表す適切な方法である場合、コードは、私が達成しようとしている関連付けを表示しようとしているだけでは完全ではありません。誰かがより良い解決策の提案を持っているか、このような問題を扱っているいくつかのドキュメントの方向に私を向けることができるなら、それは非常にありがたいです!

4

1 に答える 1

4

Railsモデルのアップロードを管理するためにCloudinaryでCarrierWaveを使用すると仮定します。アップローダークラスを定義し、それをImageクラスにマウントする必要があります。Imageモデルクラスに「picture」属性があると仮定します。

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 に答える