English 中文(简体)
在铁路中创建一个钻头菜单
原标题:Creating a drilldown menu in rails

我有一连串的字符串 看上去类似:

“文件夹1/filea/x1.png”、“文件夹1/fileb/x2.png”、“文件夹2/fileer3/filec/x3.png”......。

我的目标是制作一个钻头菜单,比如:http://iwantaneff.in/repo/plutins/menu-nav/drill.down/index.html

In rails I have tried using the group_by method, but had no luck. essentially I need to create a folder structure like

  1. folder1
    • filea
      • x1.png
    • fileb
      • x2.png
  2. folder2

等等.......

知道从哪开始吗? 我很难解决这个问题。 我在每个阵列上都使用了分裂法, 这样我就能得到一系列的阵列, 但是这似乎没有进展。 我认为我需要使用循环来通过子树?

最佳回答

回答简单) 解析和插入数据时使用循环循环

解析 gt 示例;

   def parse(hash)
      hash.each do |k,v|
        files = v.select{|e| e.size == 1}
        hash[k] = {"files" => files.flatten} unless files.empty?
        dirs = v - files
        unless dirs.empty? 
          dirs = parse(dirs.group_by{|e| e.shift})
          if files.empty?
            hash[k] = dirs  
          else
            hash[k].merge! dirs
          end
        end 
      end
    end

输入输入

h = {:root =>  ["folder1/filea/x1.png", "folder1/fileb/x2.png","folder1/fileb/folder4/111", "folder2/folder3/filec/x3.png","folder2/folder3/filec/x4.png"].map{|e| e.split("/")}}

parse(h)

将输出为

{:root=>{"folder1"=>{"filea"=>{"files"=>["x1.png"]}, "fileb"=>{"files"=>["x2.png"], "folder4"=>{"files"=>["111"]}}}, "folder2"=>{"folder3"=>{"filec"=>{"files"=>["x3.png", "x4.png"]}}}}}
问题回答

暂无回答




相关问题
rails collection_select vs. select

collection_select and select Rails helpers: Which one should I use? I can t see a difference in both ways. Both helpers take a collection and generates options tags inside a select tag. Is there a ...

SSL slowness in EC2

We ve deployed our rails app to EC2. In our setup, we have two proxies on small instances behind round-robin DNS. These run nginx load balancers for a dynamically growing and shrinking farm of web ...

Auth-code with A-Za-z0-9 to use in an URL parameter

As part of a web application I need an auth-code to pass as a URL parameter. I am currently using (in Rails) : Digest::SHA1.hexdigest((object_id + rand(255)).to_s) Which provides long strings like : ...

RubyCAS-Client question: Rails

I ve installed RubyCAS-Client version 2.1.0 as a plugin within a rails app. It s working, but I d like to remove the ?ticket= in the url. Is this possible?

activerecord has_many :through find with one sql call

I have a these 3 models: class User < ActiveRecord::Base has_many :permissions, :dependent => :destroy has_many :roles, :through => :permissions end class Permission < ActiveRecord::...

Ordering a hash to xml: Rails

I m building an xml document from a hash. The xml attributes need to be in order. How can this be accomplished? hash.to_xml

Text Editor for Ruby-on-Rails

guys which text editor is good for Rubyonrails? i m using Windows and i was using E-Texteditor but its not free n its expired now can anyone plese tell me any free texteditor? n which one is best an ...

How to get SQL queries for each user where env is production

I’m developing an application dedicated to generate statistical reports, I would like that user after saving their stat report they save sql queries too. To do that I wrote the following module: ...

热门标签