升级到rails2.0.2后,安装这个plugin
ruby script\plugin install acts_as_nested_set
十二 072007
很多时候在与客户交流之后,客户描述了需求,我们完成了记录,这个时候我们以为明白客户的需求了,其实很多地方我们理解的需求,并不是客户的真正需求。
借助于ROR快速的完成这一个需求的原型界面(这个时候不必考虑界面的美观问题,等到需求定好之后,再去做UI,并再次迭代),让客户参与进来,坐在旁边,直接面对面的进行交流,立马可以发现问题,及时改正,完成一次迭代。这样的好处就是有问题能够在开发过程中解决掉,不必等到整个项目做完后,交付客户了,才发现问题一大堆,再做修改,这时修改很费时间和精力,很多都是需求方面的理解错误。
原来在symfony下用的一个TabPanel的Helper,移植到ROR下面,同样好用,本来Symfony就是ROR的思想,所以原来的很多东西都可以用上。
tab_helper.rb
- module TabHelper
- def tabMainJS (mid, id, page_id, title,main_class='tab-pane', page_class='tab-page')
- s = ''
- s+= "<div class='#{main_class}' id='#{id}'>\n"
- s+="<script type='text/javascript'>\n"
- s+="#{mid} = new WebFXTabPane( document.getElementById( '#{id}' ) );\n"
- s+="</script>\n"
- s+="<div class='#{page_class}' id='#{page_id}'>\n"
- s+="<h2 class='tab'>#{title}</h2>\n"
- s+="<script type='text/javascript'>#{mid}.addTabPage( document.getElementById( '#{page_id}' ) );</script>\n"
- end
- def tabPageOpenClose(mid, page_id, title, page_class='tab-page')
- s = ''
- s+="</div>\n"
- s+="<div class='#{page_class}' id='#{page_id}'>\n"
- s+="<h2 class='tab'>#{title}</h2>\n"
- s+="<script type='text/javascript'>#{mid}.addTabPage( document.getElementById( '#{page_id}' ) );</script>\n"
- end
- def tabInit(mid='', n='')
- s = ""
- s+="</div>\n"
- s+="<script type='text/javascript'>\n"
- s+="setupAllTabs();\n"
- unless n.blank?
- s+="#{mid}.setSelectedIndex('#{n}');"
- end
- s+="</script>\n"
- s+="</div>\n"
- end
- end
十一 172007
做分层数据表时用了一下感觉不错,使用了一个增强插件Better nested set,acts_as_nested_set,把下面文档里的数据分层都用上了。
十一 102007
这几天好好的研究了一下struts2,spring2,hibernate3,发现做一个功能要搞n多东西,过于复杂,适合大项目和大团队。
Ruby On Rails可以快速的功能实现,对于现在这个时间就是金钱、需求变化迅速的时代,正合我意。
之前我使用的php framework—symfony就很大程度上参考了ROR的实现,包括现在的Grails,都在模仿ROR的模式。
1、页面部分
增加
- <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
2、数据库部分
数据库链接配置文件里增加一行
encoding: utf8