0

今天我有一个直接的问题:P 我只需要一些想法......你将如何在 Rails 中编写一个 RESTful 文件管理器?

我想使用对文件执行所有操作的文件控制器。现在当我安静地做这件事时,只有一些功能:

  • 创建(创建文件/目录)
  • 销毁(删除文件/目录)
  • 索引(列出目录)
  • show(显示文件的属性)
  • 编辑(重命名文件/目录)

现在我不知道如何复制/移动文件......当我希望用户拥有该文件管理器的多个实例时,我如何管理他可以在不同的目录中?(在一个会话中有我的文件管理器的不同实例)

谁能给我一些提示?: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 回答