升级到rails2.0.2后,安装这个plugin

ruby script\plugin install acts_as_nested_set

       很多时候在与客户交流之后,客户描述了需求,我们完成了记录,这个时候我们以为明白客户的需求了,其实很多地方我们理解的需求,并不是客户的真正需求。

借助于ROR快速的完成这一个需求的原型界面(这个时候不必考虑界面的美观问题,等到需求定好之后,再去做UI,并再次迭代),让客户参与进来,坐在旁边,直接面对面的进行交流,立马可以发现问题,及时改正,完成一次迭代。这样的好处就是有问题能够在开发过程中解决掉,不必等到整个项目做完后,交付客户了,才发现问题一大堆,再做修改,这时修改很费时间和精力,很多都是需求方面的理解错误。

原来在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

© 2011 刘敏的Blog Suffusion theme by Sayontan Sinha