ruby-on-rails – 基于数据库的文件系统的Rails实现

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 基于数据库的文件系统的Rails实现前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
因为“文件系统”和“rails”是这样的共同主题,无论是在一起还是分开,我都找不到任何在数据库中实现文件系统的 Ruby on Rails开源应用程序.我想使用这样的应用程序作为起点或模板.

我已经能够实现用户和目录模型(后者使用Ancestry),我正在使用文件模型(我的应用程序只需要一种文件).

class User < ActiveRecord::Base
  attr_accessible :email,:name,:password,:password_confirmation
  has_secure_password
  has_many :directories,dependent: :destroy
  # ...
end # class User

class Directory < ActiveRecord::Base
  attr_accessible :name,:parent_id
  has_ancestry
  belongs_to :user
  has_many :files,dependent: :destroy
  # ...
end # class Directory

# not actually implemented,yet
class File < ActiveRecord::Base
  attr_accessible :name
  belongs_to :directory
  # ...
end # class File

在视图中我使用jsTree来呈现树和一个表单来添加/删除,编辑……这需要更改为使用AJAX,因为重定向回同一页面不会保留树的展开/折叠状态.

然而,我有这种唠叨的感觉,我正在做一些已经做过很多次的事情.您能否提供有关此类应用程序的链接或提供有关实现模型部分和视图部分的提示

解决方法

关于实现模型部分的提示

为了将模型组织为树结构,tecnique被称为Nested set model,因此一个通用名称(有助于谷歌搜索等)可能是“Activerecord嵌套”;-)

您对祖先的选择是受欢迎的,但您可以看看项目(混合,插件,……),例如:

> awesome_nested_set

> act_as_nested_set
> Better nested set

> act_as_a_tree
> Closure Tree
> Arboreal

对于文件上传’n商店部分我建议,除了已经提到的Paperclip之外,看看carrierwave本身提供了一个基于“雾”宝石的存储(支持使用AWS,Google,Local和Rackspace存储文件)但是您可以选择利用carrierwave-activerecord数据库(例如sqlite)存储

关于实现视图部分的提示

关于“视图”您可能对this answer jQuery File Tree jQuery和dnamique blog的可配置AJAX文件浏览插件感兴趣,该插件有一个用于此插件的rails连接器以及有关它的源和演示.

作为替代方案,请查看下一节中提到的应用程序的实现(源代码).

这些应用程序的链接

这里有一些感兴趣的“文件管理器”:

> Boxroom
> Saphyra(可安装的发动机)>基于rails的CMS可能会有一些感兴趣的代码

猜你在找的Ruby相关文章