加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 23:03:34 所属栏目:百科 来源:网络整理
导读:因为“文件系统”和“rails”是这样的共同主题,无论是在一起还是分开,我都找不到任何在数据库中实现文件系统的 Ruby on Rails开源应用程序.我想使用这样的应用程序作为起点或模板. 我已经能够实现用户和目录模型(后者使用Ancestry),我正在使用文件模型(我的
因为“文件系统”和“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可能会有一些感兴趣的代码

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读