extjs 菜单树的后台

因为自已只用到两层的树。所以可能功能不是很完善。。
把代码贴出来让大伙瞅瞅。

  def getmenulist
    menustring="["
    lv1list=Menu.find_by_sql("select * from menus where menuid=leve")

    lv2list=Menu.find_by_sql("select * from menus where menuid!=leve")
 
    for items in lv1list
 
      menustring+="{text:\""+items.name+"\",id:"+rand().to_s+",singleClickExpand:true,cls : \"file\",leaf:false,children:["
        childer=""
      for temp in lv2list
      if temp.leve==items.menuid:
          childer+="{text:\""+temp.name+"\",id:\""+temp.link+"\",cls : \"file\",leaf:true},"
      end

    end
       menustring+=childer+"]},"
     end
 menustring+="]"
  menustring=menustring.gsub(",]","]")
    render(:text => menustring)
  end

 下面是原来用DJANGO的时侯设计的数据库。

 

class menu (models.Model):
    id = models.AutoField('ID', primary_key=True)   
    #menuid
    menuid=models.IntegerField()
    #名称
    name=models.CharField(max_length=100)
    #链接
    link=models.CharField(max_length=100)
    #菜单层 如果这一层等于MENUID的话菜单说明属于MENUID那一层的菜单。如果MENUDID=LEVE的话说明是第一级菜单
    leve=models.IntegerField()

 

你可能感兴趣的:(sql,django)