我无法在 Ruby on Rails 中表示分层数据,使用 jsTree 在“树文件夹结构”中可视化数据。为了使用示例数据测试插件,我遵循了本教程: http ://beginrails.blogspot.ca/2012/03/jstree-introduction.html
我正在编写的应用程序是一个非常基本的“技能清单”,具有页面(技能类型)和用户(具有技能的人)模型。页面是分层的,这意味着一个页面可以是多个页面的“父级”,也可以是多个其他页面的父级,依此类推。当“页面”不再有子级时,该页面将包含“用户”。使用示例数据,应用程序应产生如下结果:
http://i.imgur.com/O3na3Ws.png
每个页面都有一个parent_id
字段,所有页面都是独立的(意味着它们都包含在 中Page.all
)。如果parent_id
字段为nil
,则页面将仅包含用户。每个页面还有一个links
数组,其中存储了子页面的 ID。这两个字段是数据层次结构的基础。我的问题是:我如何能够遍历所有页面并为 jsTree 设置正确的 HTML 以正确可视化数据?
页面模型:
# == Schema Information
#
# Table name: pages
#
# id :integer not null, primary key
# parent_id :integer
# name :string(255)
# links :text
# created_at :datetime not null
# updated_at :datetime not null
#
class Page < ActiveRecord::Base
include ActsAsTree
acts_as_tree order: "name"
attr_accessible :links, :name, :parent_id
serialize :links
WillPaginate.per_page = 10
end
我的 Pages 控制器的相关部分:
def index
@pages = Page.all
# any additional change could go here
respond_to do |format|
format.html # index.html.erb
format.json { render json: @pages }
end
end
应用程序的“索引”视图(这是 jsTree 可视化所在的位置:
<div id="treeview">
<ul>
<!-- jsTree logic and looping through data goes here -->
</ul>
</div>
我是一名初学者 Rails 程序员,所以任何建设性的批评将不胜感激。