最近用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="(.*?)"\],里面是用双引号,但在显示的时候,我们会结合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做点东西,就体会的到了。
分享到:
- 2007-09-25 10:48
- 浏览 3037
- 评论(3)
- 论坛回复 / 浏览 (2 / 4090)
- 查看更多
相关推荐
《Ruby.on.Rails.Web开发之旅》,作者:【德】Patrick Lenz,翻译:王德民、刘昕、裴立秋,出版社:人民邮电出版社,ISBN:9787115188526,PDF 格式,大小 144 Mb,被压缩为 3 部分,本资源是第二部分;第一部分下载...
《Ruby.on.Rails.Web开发之旅》,作者:【德】Patrick Lenz,翻译:王德民、刘昕、裴立秋,出版社:人民邮电出版社,ISBN:9787115188526,PDF 格式,大小 144 Mb,被压缩为 3 部分,本资源是第一部分;第二部分下载...
《Ruby.on.Rails.Web开发之旅》,作者:【德】Patrick Lenz,翻译:王德民、刘昕、裴立秋,出版社:人民邮电出版社,ISBN:9787115188526,PDF 格式,大小 144 Mb,被压缩为 3 部分,本资源是第三部分;第一部分下载...
#### 小结 《Rails Recipes》是一本非常实用的指南,对于希望深入了解 Ruby on Rails 的开发者来说非常有价值。它不仅涵盖了前端 UI 的各个方面,还提供了许多实用的技巧和最佳实践,有助于提高开发效率和提升应用...
结帐历史记录-适用于主页上的单个用户(“查看结帐历史记录”),也适用于所有管理员用户(转到“管理用户”,然后查看结帐历史记录)以及一本书(转到“所有图书/搜索书”) ,然后单击特定图书的“结帐历史记录”...
#### 小结 通过以上步骤,即使是在局域网环境下,也可以顺利地安装并运行Redmine。这个过程不仅涉及软件的安装和配置,还需要对Redmine和服务器环境有深入的理解。作者通过分享自己的实践经验,帮助读者避免了许多...
在实际开发中,许多Web框架如Spring MVC、ASP.NET MVC、Ruby on Rails等都采用MVC架构。例如,Spring MVC是Java领域的一个流行框架,它提供了丰富的工具和功能来简化开发流程,支持模型绑定、数据验证、拦截器等特性...
Growstuff 是用 Ruby on Rails 构建的,还使用 JavaScript 作为前端功能。 我们欢迎贡献——有关详细信息,请参阅。 要设置您的开发环境,请参阅。 我们鼓励结,特别是对于新开发人员。 您可能也对我们的感...
原书名:Foundations of Ajax 原出版社: Apress 作者: (美)Ryan Asleson,Nathaniel T.Schutta 译者: 金灵 等 丛书名: 图灵程序设计丛书 出版社:人民邮电出版社 ...b.2.9 ruby on rails ... 253
支付宝介绍我选择在网站上使用 ruby on rails 并与 Paypal 的快速结账 API 集成。 整个过程包括3个API调用: SetExpressCheckout : 嵌套在 set_express_checkout 方法中GetExpressCheckout : 嵌套在 get_express...
小结.....................................140 -------------------------------------------- 第6章:设计可读写的面向资源的服务........143 将用户账户作为资源.......................144 自定义地点.........