在同时使用日期选择器和TabPanel的时候,日期选择老是跑到TabPanel的下面,这时才发现z-index的作用,可以调整层次顺序,把日期选择器调到最上面就好了,数值越大越在上。

原来在symfony下用的一个TabPanel的Helper,移植到ROR下面,同样好用,本来Symfony就是ROR的思想,所以原来的很多东西都可以用上。

tab_helper.rb

  1. module TabHelper
  2.     def tabMainJS (mid, id, page_id, title,main_class='tab-pane', page_class='tab-page')
  3.         s = ''
  4.         s+= "<div class='#{main_class}' id='#{id}'>\n"
  5.         s+="<script type='text/javascript'>\n"
  6.         s+="#{mid} = new WebFXTabPane( document.getElementById( '#{id}' ) );\n"
  7.         s+="</script>\n"
  8.         s+="<div class='#{page_class}' id='#{page_id}'>\n"
  9.         s+="<h2 class='tab'>#{title}</h2>\n"
  10.         s+="<script type='text/javascript'>#{mid}.addTabPage( document.getElementById( '#{page_id}' ) );</script>\n"
  11.     end
  12.    
  13.     def tabPageOpenClose(mid, page_id, title, page_class='tab-page')
  14.         s = ''
  15.         s+="</div>\n"
  16.         s+="<div class='#{page_class}' id='#{page_id}'>\n"
  17.         s+="<h2 class='tab'>#{title}</h2>\n"
  18.         s+="<script type='text/javascript'>#{mid}.addTabPage( document.getElementById( '#{page_id}' ) );</script>\n"
  19.     end
  20.    
  21.     def tabInit(mid='', n='')
  22.         s = ""
  23.         s+="</div>\n"
  24.         s+="<script type='text/javascript'>\n"
  25.         s+="setupAllTabs();\n"
  26.         unless n.blank?
  27.             s+="#{mid}.setSelectedIndex('#{n}');"
  28.         end
  29.         s+="</script>\n"
  30.         s+="</div>\n"
  31.     end
  32. end

做分层数据表时用了一下感觉不错,使用了一个增强插件Better nested set,acts_as_nested_set,把下面文档里的数据分层都用上了。

managing-hierarchical-data-in-mysql有详细的介绍。

这几天好好的研究了一下struts2,spring2,hibernate3,发现做一个功能要搞n多东西,过于复杂,适合大项目和大团队。

Ruby On Rails可以快速的功能实现,对于现在这个时间就是金钱、需求变化迅速的时代,正合我意。

之前我使用的php framework—symfony就很大程度上参考了ROR的实现,包括现在的Grails,都在模仿ROR的模式。

1、页面部分
增加

  1. <meta http-equiv="content-type" content="text/html;charset=UTF-8" />

2、数据库部分
数据库链接配置文件里增加一行

encoding: utf8

对一个60万条记录的表进行测试,用mysql       like ‘%关键词%’ 的方式模糊进行查询一下,基本在1.9秒左右,这种模糊检索方式不走索引,建不建索引都一样;用 compass为表建索引,模糊检索达到0.001秒 级别,可以说是质的飞跃。

compass是建立在Lucene的基础之上,是一个强大的,事务的,高性能的对象/搜索引擎映射(OSEM:object/search engine mapping)与一个Java持久层框架.Compass包括:
* 搜索引擎抽象层(使用Lucene),
* OSEM (Object/Search Engine Mapping) 支持,
* 事务管理,
* 类似于Google的简单关键字查询语言,
* 可扩展与模块化的框架,
* 简单的API.

© 2011 刘敏的Blog Suffusion theme by Sayontan Sinha