本主题地址:http://bbs.laoer.com/main-read-8-ff80808114f47eeb01153a932a65392a.html
[楼主] 主题:Ruby On Rails小结
Laoer(laoer)
Face

发帖:2435
精华:20
积分:7059
等级:黄金长老
社区币:100
来自:上海
注册:2006-07-01
最后登录:11-19 17:48
 
最近用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做点东西,就体会的到了。
 
2007-09-25 10:51:04
[1楼] 主题:Re:Ruby On Rails小结
kris_xu(kris_xu)
[推荐] [保留] [精华] 支持 :1 反对 :0 IP
Face

发帖:8
精华:0
积分:24
等级:初出江湖
社区币:100
来自:上海市杨浦区
注册:2007-04-16
最后登录:12-20 18:47
 
LZ真是了得,不知道楼主是否能说明一下你的ROR应用用什么server发布的.
 
2007-09-28 14:50:34
[2楼] 主题:Re:Ruby On Rails小结
Laoer(laoer)
[推荐] [保留] [精华] 支持 :1 反对 :0 IP
Face

发帖:2435
精华:20
积分:7059
等级:黄金长老
社区币:100
来自:上海
注册:2006-07-01
最后登录:11-19 17:48
 
Apache+mongrel
 
2007-09-30 09:30:36
[3楼] 主题:Re:Ruby On Rails小结
cliu99(cliu99)
[推荐] [保留] [精华] 支持 :0 反对 :0 IP
Face

发帖:4
精华:0
积分:12
等级:初出江湖
社区币:100
来自:广东省深圳市福田区
注册:2007-07-24
最后登录:06-19 16:23
 
很好的经验,每次都受益于此。我在使用attachment_fu上传文件时,总是不能生成缩图,不知道是什么原因引起的?原图是可以成功上传,就是无法找到生成的缩图,谢谢帮忙!!
 
2007-09-30 14:20:29
[4楼] 主题:Re:Ruby On Rails小结
Laoer(laoer)
[推荐] [保留] [精华] 支持 :0 反对 :0 IP
Face

发帖:2435
精华:20
积分:7059
等级:黄金长老
社区币:100
来自:上海
注册:2006-07-01
最后登录:11-19 17:48
 
引用:
很好的经验,每次都受益于此。我在使用attachment_fu上传文件时,总是不能生成缩图,不知道是什么原因引起的?原图是可以成功上传,就是无法找到生成的缩图,谢谢帮忙!!
把你的图片Model发上来看看。
 
2007-09-30 22:16:16
[5楼] 主题:Re:Ruby On Rails小结
cliu99(cliu99)
[推荐] [保留] [精华] 支持 :0 反对 :0 IP
Face

发帖:4
精华:0
积分:12
等级:初出江湖
社区币:100
来自:广东省深圳市福田区
注册:2007-07-24
最后登录:06-19 16:23
 
谢谢!国庆快乐!
代码如下:
class Image < ActiveRecord::Base
has_attachment :content_type => :image,
:storage => :file_system,
:max_size => 500.kilobytes,
:resize_to => '320x200>',
:thumbnails => { :thumb => '100x100>' },
:path_prefix => 'public/images/mugshots'
validates_as_attachment
end

我按照readme.txt的文档中的配置也无法成功生成缩图!
 
2007-10-02 13:40:52
[6楼] 主题:Re:Ruby On Rails小结
cliu99(cliu99)
[推荐] [保留] [精华] 支持 :0 反对 :0 IP
Face

发帖:4
精华:0
积分:12
等级:初出江湖
社区币:100
来自:广东省深圳市福田区
注册:2007-07-24
最后登录:06-19 16:23
 
如生成缩图,现在的新问题!
我在用attachment_fu做文件上传时,添加一条数据第一次上传的图片能成功上传没有什么问题,但再添加一条数据上传图片时,图片不能上传完,只上传了一部分。有时候又正常,怀疑是不是前面上传图片后没有释放什么资源?

class Image < ActiveRecord::Base
belongs_to :iconable, :polymorphic => true

has_attachment :storage => :file_system,
:content_type => :image,
:processor => 'Rmagick',
:max_size => 20.megabyte,
:path_prefix => 'public/files',
:resize_to => '500x500>',
:thumbnails => { :thumb => '150x150>' }

validates_as_attachment
end

class Store < ActiveRecord::Base
has_one :image, :as => :iconable, :dependent => :destroy
end

def create
@image = Image.new(params[:image])
@store = Store.new(params[:store])
Image.transaction do
@store.user = current_user
@store.image = @image
@image.save!
@store.save!
redirect_to store_url(@store)
end
end

截图见附件

偶尔还会出现
Validation failed: Size is not included in the list错。
 
2007-10-14 11:06:54
[7楼] 主题:Re:Ruby On Rails小结
Laoer(laoer)
[推荐] [保留] [精华] 支持 :0 反对 :0 IP
Face

发帖:2435
精华:20
积分:7059
等级:黄金长老
社区币:100
来自:上海
注册:2006-07-01
最后登录:11-19 17:48
 
Validation failed: Size is not included in the list
:min_size => 0 解决
 
2007-10-17 15:37:46
[8楼] 主题:Re:Ruby On Rails小结
kris_xu(kris_xu)
[推荐] [保留] [精华] 支持 :0 反对 :0 IP
Face

发帖:8
精华:0
积分:24
等级:初出江湖
社区币:100
来自:上海市杨浦区
注册:2007-04-16
最后登录:12-20 18:47
 
引用:
Validation failed: Size is not included in the list
:min_size => 0 解决
果然是这个0啊?
 
2007-12-20 18:48:24
[9楼] 主题:Re:Ruby On Rails小结
tocow(tocow)
[推荐] [保留] [精华] 支持 :0 反对 :0 IP
Face

发帖:1
精华:0
积分:4
等级:初出江湖
社区币:100
来自:广东省广州市
注册:2007-05-28
最后登录:09-10 12:38
 
ruby 垃圾,隐藏了太多细节
 
2008-09-10 12:42:34
[分页: 1 2] [只看楼主] [返回]
快速回复
文章标题
文章内容
·用户请确认您发表的言论符合《互联网电子公告服务管理规定》《全国人大常委会关于维护互联网安全的规定》规定,并符合本论坛的主旨。
·本社区用户不得在本社区发表包含破坏宪法和法律、破坏民族团结、捏造或者歪曲事实、宣扬封建迷信、淫秽、色情,及其他违反宪法和法律行政法规的言论。
·本社区用户因为违反本社区规定而触犯中华人民共和国法律的,责任自负。
社区搜索
推荐主题