Ruby On Rails小结

原创 2007年09月25日 12:26:00

最近用Ruby On Rails做了个网站(http://www.loveroom.com.cn),网站内容是游记、照片还有同路同行,在使用ROR的过程中确实遇到了不少的问题,现在总结一下。

1、学习方式,《Web开发敏捷之道》一、二版一定要看,Programming Ruby中文版(第2版)用来学习Ruby语言体系,在开发过程中要多看Ruby的API和Rails的API。

2、首先遇到的问题是RMagick在Linux上的安装,也不知道是我的服务器性能不行还是什么原因,不论我用源码编译的方式还是用gem的方式,装到一半的时候服务器CPU就100%了,后来也不响应了,死机,只有打电话到机房重起,搞得我要崩溃了,后来我在我找了一台测试机安装,没有问题,我想了一个办法,在测试机上make,然后打包放到我的服务器上make install,竟然可以了。

3、国际化、本地化,ROR中models的校验信息默认都是英文的,这在中文网站方面肯定是不行的了,所以要安装gettext组件(http://www.yotabanana.com/hiki/ruby-gettext-howto-rails.html),它汉化的效果还是不错,不过总是让人觉得有点别扭,所以我建议有些校验,比如是否为空、字符长度这些校验还是放在controller里来做,信息提示也比较好控制。

4、插件使用,Rails的插件绝对是一大特色,可以用爽来形容,robbin介绍了几个,我也用了,主要有will_paginate,attachment_fu、bbcodeizer、legacy等,will_paginate用来做分页的,比较简单,没遇到什么问题,bbcodeizer用来实现BBCode的,也不难,但有写地方需要自己改一下,比如我用[quote],它原来是[quote="(.*?)"/],里面是用双引号,但在显示的时候,我们会结合h函数,h函数会把双引号变成",这样就不能正常解析了,所以我把它换成了单引号,legacy里面我主要用了resource_feeder,来实现RSS,也不算难,所有这些插件里最搞的算是attachment_fu了,它是用来实现上传文件,本身真的是非常方便,但在它models配置中的:min_size如果不设置位为0,在windows环境下(网上说在Linux上没问题,我没有测试),由于文件处理过程相对较长,所以取不到文件的大小,导致文件大小校验失败,只有把:min_size设为0,校验可以通过,后来又遇到一个问题,就是上传文件的时候,有很多情况不是只有文件表单的,我们会需要用户填一些其他的信息,在这样的情况下,如果用户有些必填表单出现校验错误的时候,之后就一直校验失败,搞得我有点莫名其妙,后来我自己新建了一个model对象,让表单先填充这个model并做手动校验,之后再填充数据库的model,就没问题了。

5、oniguruma组件,oniguruma是用来实现多语言的正则表达式的,特别是中、日文,这个组件在win下安装毫无问题,但我在linux上,却不行,网上资料也比较少,看到的好像是说oniguruma和Ruby1.8的版本是有点问题,它是Ruby1.9的一部分,算了,到1.9再用吧,还好用到它的地方不多,通过别的方式也能实现。

总的来说,ROR有很多很有意思的方法、属性等等,特别是它的模板、渲染、Ajax都超级的方便,ROR的开发效率太高了,比JAVA高的不是一点点,但Ruby适合互联网、适合Web2.0,不太适合企业级的应用,建议大家用ROR做点东西,就体会的到了。 

相关文章推荐

Ruby on rails 实战圣经:数据库迁移 - Migrations

Programmingtoday is a race between software engineers striving to build bigger and betteridiot-pro...
  • felomeng
  • felomeng
  • 2014年03月12日 22:16
  • 17263

Ruby on rails 实战圣经:打造 CRUD 应用程序

Much of the essence ofbuilding a program is in fact the debugging of the specification. - FredBrooks...

ruby on rails 的数据库查询方法

a = Category.new(:name => 'Ruby', :position => 1) a.save # save 还有相同方法”save!” # 有无惊叹号的差别在于v...

Ruby on Rails服务器文件上传

最近看了下ruby on rails,试着把Dynamic Web TWAIN集成到ruby on rails中。这里分享下如何在rails中用几行代码搞定文件上传。 参考原文:How to...
  • yushulx
  • yushulx
  • 2015年09月15日 16:20
  • 604

Ruby on Rails 学习(四)

1.学习读出文件 class HelloController   def hello alltext = "" File.open("/xxx/black_group.txt","r") do |f...

Ruby on Rails安装

环境:ubuntu首先安装rubysudo apt install ruby查看ruby版本ruby -v安装rails配置gem源由于默认的gem源使用的是国外的源,在国内速度慢而且时常无法访问,所...

ruby on rails安装

网上找了好久都没安装成功,用这个终于安装成功啦~~~~ 1) 安装ruby        下载安装包:http://rubyforge.org/frs/?group_id=167 ,我下载的是...

为Ruby On Rails开发者准备的5款IDE

本文作者Senthil Kumar在博客上列出了一些经常被Ruby on Rails开发者使用的几个IDE。详细介绍了每个IDE的特性以及它们的使用方向。(以下是编译内容)   1. Jetbrai...

Ruby On Rails--rake 任务中定义方法的陷阱

问题描述在rails项目中,有时候需要导出数据、处理历史数据等,这时用rake是很方便的。在rake中,有时候由于逻辑比较复杂,所以我们就会分离逻辑或者需要重用代码,这时候可能会定义方法。但是,在ra...
  • liuk10
  • liuk10
  • 2016年04月06日 17:35
  • 584

ruby on rails 项目部署(Nginx + Passenger)

由于最近用rails在做一个项目,以前似乎接触过一些信息说rails部署起来非常麻烦于是自己尝试了一下,花了半个小时终于搞定了(Nginx+passenger)。成功运行出第一个自己部署的rails项...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Ruby On Rails小结
举报原因:
原因补充:

(最多只允许输入30个字)