gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 06:59:08 27 4
gpt4 key购买 nike

因为“文件系统”和“rails”是这样的共同主题,无论是在一起还是分开,我都找不到任何 Ruby on Rails在数据库中实现文件系统的开源应用程序。我想使用这样的应用程序作为起点或模板。

我已经能够实现 UserDirectory 模型(后者使用 Ancestry),我正在准备File 模型(我的应用只需要一种文件)。

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

在我使用的 View 中 jsTree显示树和表单以添加/删除、编辑...这需要更改为使用 AJAX因为重定向回同一页面不会保留树的展开/折叠状态。

但是,我有一种挥之不去的感觉,好像我正在做一些已经做过很多次的事情。您能否提供此类应用程序的链接或提供有关实现模型部分和 View 部分的提示?

最佳答案

关于实现模型部分的提示

要将模型组织为树结构,技术称为 Nested set model因此,一个通用名称(有助于谷歌搜索等)可以是 "Activerecord nesting" ;-)

欢迎您选择 Ancestry,但您可以通过查看项目(混合、插件等)获益,例如:

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

关于实现 View 部分的提示

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

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

此类应用程序的链接

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

  • Boxroom
  • Saphyra (作为可安装的引擎提供)
  • 基于 Rails 的 CMS 可能有一些有趣的代码

关于ruby-on-rails - 基于数据库的文件系统的 Rails 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16596763/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com