ruby-on-rails - Ruby 创建递归目录树

标签 ruby-on-rails ruby json tree directory

我需要递归地遍历一个目录并创建一个树以用于 jsTree控制。该控件接受 JSON 格式 like so .我需要一些 ruby 魔法来让这一切干净利落地发生。

感谢任何帮助。

最佳答案

你可能想要这样的东西(未经测试):

def directory_hash(path, name=nil)
  data = {:data => (name || path)}
  data[:children] = children = []
  Dir.foreach(path) do |entry|
    next if (entry == '..' || entry == '.')
    full_path = File.join(path, entry)
    if File.directory?(full_path)
      children << directory_hash(full_path, entry)
    else
      children << entry
    end
  end
  return data
end

递归地沿着树向下走,构建一个散列。使用您最喜欢的序列化库将其转换为 json。

关于ruby-on-rails - Ruby 创建递归目录树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5520501/

相关文章:

ruby-on-rails - Mongoid:时间戳字符串的类型?

Ruby mechanize - 区分两种形式的内容

json - jQuery 不处理来自 AJAX POST 的 JSON 响应

ruby-on-rails - Ruby 结构创建 block 无法访问 block 外的变量

ruby - 在 Amazon OpsWorks 上使用 Ruby 2.0

javascript - 单击 chrome 扩展程序图标时在新窗口中打开当前页面 URL

json - 在 JSONObject Swift 中检查键

html - Rails Backbone Marionette Assets 在更改时不再更新?

javascript - mailto函数显示URL中的所有内容

ruby-on-rails - 在一页上创建目标和任务的 Rails 待办事项列表应用程序 - 缺少参数