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教程 和Ruby&Rails 入门大全,对新手很有用

我自己常用的gem包: 数据库驱动 mysql , sqlite3-ruby, postgre-pr,名字不言而喻。 很遗憾并不是所有的Ruby库都是通过gem方式安装,比如针对Oracle的ruby...
  • Bactryki28
  • Bactryki28
  • 2016年06月14日 12:00
  • 1417

新人千万不要在 Windows 上使用 Ruby on Rails

“在 Windows上 使用 Ruby on Rails “是个坑, 跳进去, 你就出不来了, 完了还没人能救你, 最好的方法是别往下跳! 如果 你正在学习 Ruby on R...
  • napoay
  • napoay
  • 2016年01月11日 14:38
  • 3381

Rails 和 Django 的深度技术对比

我想以一个免责声明来开始下面的内容。我使用 Django 开发网站已经有三年了,众所周知,我喜欢Django。我已经写了一个开源的应用程序( app ),并且我已经将补丁发送到了Django.然而,我...
  • dxm2025
  • dxm2025
  • 2015年01月26日 11:43
  • 446

Ruby on rails 实战圣经:RESTful 应用程序

什么是 RESTful?The first 90%of the code accounts for the first 90% of the development time. The remaini...
  • felomeng
  • felomeng
  • 2013年11月19日 21:59
  • 9354

ruby on rails 的数据库查询方法

a = Category.new(:name => 'Ruby', :position => 1) a.save # save 还有相同方法”save!” # 有无惊叹号的差别在于v...
  • menxu_work
  • menxu_work
  • 2013年03月12日 18:03
  • 1699

Ruby on Rails与Java,哪一个才适合你呢?

本文来源于我在InfoQ中文站原创的文章,原文地址是:http://www.infoq.com/cn/news/2013/11/ror-java假如你要从头开始开发一个Web应用项目,当然了,这是个很...
  • ricohzhanglong
  • ricohzhanglong
  • 2013年11月08日 02:27
  • 2466

Rails中的includes和joins的区别与用法(翻译,部分)

includes和joins的不同 当includes和joins的时候最重要的概念就是他们有他们的典型用例。 includes使用贪婪加载(eager loading) joins使用懒加载(l...
  • sxs_smile
  • sxs_smile
  • 2017年05月07日 11:55
  • 569

Ruby Thin服务器——比Rails自带的Webrick快不止一个档次!

最快速的上手方法:(亲测可用,效果明显) 1.安装gem_在控制台输入 gem install thin 2.运行服务器 在网站对应的目录下 输入 start thin 替换原来的 Rails...
  • winbobob
  • winbobob
  • 2015年01月08日 03:18
  • 2443

Ruby Rails入门——windows下搭建Ruby Rails Web开发环境

Ruby on Rails 是一个可以使你开发,部署,维护 web 应用程序变得简单的框架。2015年10月编程语言排行榜 Ruby进入TIOBE排行榜前十,可见其流行程序如此之高。本文就帮你打开Ru...
  • testcs_dn
  • testcs_dn
  • 2015年12月12日 14:03
  • 10808

Ruby on rails 连接mysql数据库实践

1.安装好railsinstaller后,先修改gem的源。 1.1查看源 gem sources 1.2移除原有的:https://rubygems.org,由于使用原有的源来用gem安装的时候,...
  • allenwdj
  • allenwdj
  • 2016年01月08日 15:09
  • 1233
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Ruby On Rails小结
举报原因:
原因补充:

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