0

今日、私は直接問題を抱えています:P 私はいくつかのアイデアが必要です.レールでRESTfulファイルマネージャーをどのように記述しますか?

ファイルのすべての操作を行うファイル コントローラーを使用したいと考えています。今、私が安らかにやると、いくつかの機能しかありません:

  • create (ファイル/ディレクトリの作成)
  • destroy (ファイル/ディレクトリの削除)
  • index (ディレクトリを一覧表示)
  • show (ファイルのプロパティを表示)
  • 編集 (ファイル/ディレクトリの名前を変更)

ファイルをコピー/移動する方法がわかりません...そして、ユーザーにそのファイルマネージャーの複数のインスタンスを持たせたい場合、ユーザーが異なるディレクトリにいることができるようにするにはどうすればよいですか? (1つのセッションでファイルマネージャーの異なるインスタンスを持っています)

誰かヒントをくれませんか?:P

4

1 に答える 1

0

Railsルーティングでファイルをリソースとして定義できます。次に、RESTful ルートを作成します。ファイルまたはデータベース リソースがあるかどうかは、Rails にとっては問題ではありません。RESTful ルートは同じです。ファイルの一意の識別子は、「/files/file.pdf」という一意のファイル名になります。

抽象化を使用してファイルシステムで操作を実行することをお勧めします (データベース アクセスのオブジェクト リレーショナル マッピングなど)。たとえば、搬送波を考えることができます。ファイルのアップロードを処理し、削除/破棄などの基本的な操作を提供します。また、ストレージ ボリューム (ファイル、gridfx、Amazon s3) を変更することもできます。

ファイルマネージャーのさまざまなインスタンスで何を意味するのかわかりません。ユーザーごとにファイルマネージャーを定義することができます。たとえば、carrierwaveを使用すると、カスタム ストレージ ディレクトリを定義できます。

# mount uploader in user class
class User
  mount_uploader :file, UserUploader
end

# define user uploader
class UserUploader < CarrierWave::Uploader::Base
  def store_dir
    # model = user object as the uploader
    # is mounted in the user class
    'public/uploads/#{model.id}'
  end
end

アイデアが得られることを願っています!

于 2011-02-28T09:28:50.147 に答える