Ruby & Rails
yzhrain
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Rails 2.3.12下遇到的named route的诡异问题
周五的时候把网站升级到Rails 2.3.12,本来在本地测试都没有问题的,但是在服务器上遇到一个非常诡异的问题,足足用了一天一夜的时间。本地: Mac OS X 10.7,Ruby 1.8.7,Rails 2.3.12服务器:Ubuntu 8.04,Ruby Enterprise Edition 1.8.7,Rails 2.3.12在服务器上,但凡是在 routes.rb...2011-08-14 21:18:19 · 238 阅读 · 0 评论 -
require特定版本的gem
今天有一个需求要单独地使用ActiveRecord,但是我的机器上安装了几个不同版本的ActiveRecord,之前一直是在Rails中使用ActiveRecord,可以指定版本号,我也一直没有留意使用require怎么样使用特定版本的gem,一下子就傻眼了,感觉基本功真是不够扎实啊.到google找到了这篇 [url]http://www.huangzhimin.com/tags/32-...2010-03-31 21:07:27 · 266 阅读 · 0 评论 -
从Rails 2.3.5 升级到 Rails 3.0 beta
因为有一个新的项目打算使用Rails 3.0 beta,所以先试试从Rails 2.3.5升级到Rails 3.0 beta.请参考官方的release note [url=http://guides.rails.info/3_0_release_notes.html]http://guides.rails.info/3_0_release_notes.html[/url]JavaEy...2010-03-27 22:12:16 · 160 阅读 · 0 评论 -
重新安装ruby遇到的问题
昨天重装了操作系统,要重新安装ruby环境. 因为以前也是编译安装 ruby , 所以原来解决和编译的目录还在, 我的是 /mydata/tools/ruby/ruby-1.8.7-p160 于是我执行了如下操作:./configure --prefix=/usr/local/ruby-1.8.7make && make install 于是...2009-06-13 13:14:52 · 635 阅读 · 0 评论 -
让rails中多态关联的方法名更加人性化
rails中的多态关联功能,很好很强大。但是多态关联的方法名却不够人性化,下面用代码来说话。[code="ruby"]class Brand < ActiveRecord::Base has_many :evaluations,:as => :evaluationendclass Page < ActiveRecord::Base has_many :e...2008-12-02 22:55:31 · 216 阅读 · 0 评论 -
在Rails的controller中访问params的一个小细节
大家都知道controller中的params其实是一个Hash.一般params中的数据,从log可以看到如下的样式:[code="ruby"]Parameters: {"authenticity_token"=>"AOE3ui28pCMQpMuR77aY1EkoKVaAV1T05uep5to2X4Q=", "user"=>{"name"=>"yanghuan&quo2009-12-02 22:36:24 · 551 阅读 · 0 评论 -
我用错了ruby的Time
在ruby中Time.now和Time.local是返回本地时间,Time.gm返回的是UTC时间(看成了文档才知道Time.gm和Time.utc是一样的)我竟然写了段这样的代码:[code="ruby"]t1 = Time.gm 2008,11,27,9,0,0 t2 = Time.gm 2008,11,29,17,0,0 now = Tim...2008-11-27 09:41:49 · 124 阅读 · 0 评论 -
JRuby使用经验
首先我是一个Java程序员,很喜欢Ruby.公司由于业务的需要,在Java项目中引入动态语言,目的是可以快速地修改业务逻辑以响应快速变化的业务需求.于是我有幸当了一回JRuby的先锋.当初使用JRuby的时候,我对JRuby项目的了解其实就是知道它可以让Ruby运行在JVM上面,其余细节一概不知,都是在实际使用中一点点地摸索,一点点地积累回来. 在这一过程中,在 dennis_zane...2009-05-10 17:06:54 · 148 阅读 · 0 评论 -
我的ROR代码还是写得比较山寨
今日看了不少 [url]http://guides.rubyonrails.org[/url] 上面的示例代码,发现自己写的ROR代码,想当然地写,一看就知道是没有经过正规化的山寨型代码,比如:[code="ruby"]@discussion = Discussion.new(params[:discussion])@discussion.resource = @page@di...2008-11-13 22:44:10 · 164 阅读 · 0 评论 -
今晚用上了ruby的动态方法调用,open class和mixin三大神器
今晚人品爆发,一举用上了ruby的动态方法调用,open class和mixin三大神器,解放了很多重复代码和一些硬编码。其实ruby的动态方法调用,open class和mixin在ruby开发中是很常用的东西,但是就要看你怎么用,我就是觉得把他们都用在了该用的地方,至于什么是该用的地方,这就真的是只可意会不可言传了,总之就是多实践,多尝试,多看代码,灵光一闪间,突然就用了,哈哈,说得有...2009-01-12 00:43:06 · 164 阅读 · 0 评论 -
Migrations流水帐
对于Rails的迁移功能Migrations,一直都只是看一下网上的一些很基础很基础的代码片断就开始动手写代码,对它的认识基本上就是停留在抄袭的层面,连会用都说不上.有感于此,终下决心要弄清楚Migrations,至少得会用啊,山寨抄袭终非王道.学习Migrations最佳的学习资料莫过于 Ruby On Rails网站上的 Guides 系统文章了,链接在 [url]http://gui...2009-07-11 16:02:56 · 176 阅读 · 0 评论 -
ActionMailer的一些配置
一般情况下,如果你使用gmail的话,都是这样配置的:[code="ruby"]ActionMailer::Base.smtp_settings = { :address => "smtp.gmail.com", :port => 587, :domain => "your_domain...2011-08-14 20:59:53 · 455 阅读 · 0 评论 -
如何自定义处理ActiveRecord中的errors信息
今天写代码的时候,客服MM向我反馈了一个问题,这个问题本身是很容易解决的,但是出现这个问题时的提示信息有些令人郁闷,ActiveRecord的信息显示在页面时,只看到了一堆I18n无法找到相应语言下定义的提示信息。但是我的应用支持中文和英文,我仔细检查了locales下的en.yml和zh-CN.yml,明明是有配置相应的提示信息的,却显示无法找到。一番检查之后,我认为问题在于文件加载先后...原创 2011-07-26 23:33:28 · 371 阅读 · 0 评论 -
paperclip定制文件名
在新项目中使用了paperclip这个文件上传插件,一切都很满意,但是对于它不能自定义文件名就比较郁闷了,一直想实现这个功能,不过一直没时间去看paperclip的源代码(其实因为懒)。我说的自定义文件名,不是网上多数教程所说的修改文件存储的文件夹路径,打个比方,我上传了一个叫做 test.gif 的文件,服务器上存储的文件的文件名同样是 test.gif ,而我希望是系统随机地指定一个文...原创 2010-07-02 14:25:56 · 175 阅读 · 0 评论 -
Rails 3 下自定义错误信息显示页面
大家都知道想在Rails下自定义错误显示的页面是修改 rescue_action_in_public 这个方法,我之前也写过一篇blog介绍在Rails 2.X下如何自定义错误信息页面 [url]http://yangzhihuan.iteye.com/blog/577624[/url]不过在 Rails 3中这个方法的位置改变了,上文提到的链接中的方法已经无效了,其它还是修改 resc...2010-07-08 15:21:11 · 226 阅读 · 0 评论 -
命名时请留意Rails下的关键字
前些天我在做一个支付集成的接口,对方返回的结果串里面有一个 errors 的字段,用来记录出错时候的错误代码,我需要对结果进行保存,当时我也没多想,直接建了一个model用来保存返回的结果,为了方便容易记,而且可以用一些动态的方法来对返回的串给model做一些动态的赋值,所以model的字段名直接跟返回的结果串中的字段同名.就因为这个 errors ,又导致了一个杯具的发生.因为在Acti...原创 2010-01-22 17:36:02 · 182 阅读 · 0 评论 -
rails下自定义出错页面
rails出错的时候,一般都是跳转到错误跟踪的页面下,这样在开发环境下是很好的,但是对正式环境就不是太友好了,所以如果你想自定义一下出错的页面,还是有办法的.我一般都会在lib目录下新建一个ooxx.rb文件存放下面的代码,然后在environment.rb下加载一下.environment.rb[code="ruby"]require File.join(File.dir...原创 2010-01-22 17:17:48 · 187 阅读 · 0 评论 -
rails下修改http头(http header)
其实就是修改response中一个叫做headers的Hash.至于header中可以设置什么值,请参考http header的参数.[code="ruby"] # 比如对一个非法的请求进行提示 5 秒后,自动跳转到网站的首页 response.headers['http-equiv'] = 'refresh' response.headers[...原创 2010-01-22 17:08:00 · 269 阅读 · 0 评论 -
Sinatra:一个可以作为Rails有益补充的框架. 简洁而不简单
一个基于Sinatra的小程序前些天有一个需求,需要写一个小程序来收集用户的Email,非常的简单:1.一个用户输入Email的界面2.提交Email表单后,提示用户已经记录了他/她的Email,然后跳转到首页.这是一个简单得不能再简单的小功能了,但是由于这个功能是要求放在一个独立的服务器上的,跟现有的项目也毫不相干的,我并不想在现有的Rails项目中增加这个功能.我首先想...2010-04-04 15:08:50 · 313 阅读 · 0 评论 -
NetBeans你让我又爱又恨
NetBeans是ruby和rails最好的IDE。但是我在ubuntu下使用netbeans的时候,它总是让我郁闷。完全是莫名奇妙的,突然在netbeans里就不能输入了,键盘完全无响应,重启netbeans就没事了,不知道是怎么一回事。丫的,写着写着代码,忽然这样来一下,就是让人抓狂。...2008-11-08 01:26:47 · 162 阅读 · 0 评论 -
hack了一把ActiveRecord::Base
简单讲,就是我要在我的model里增加一个全文检索的方法。前世因请看我上一篇blog [url]http://yangzhihuan.iteye.com/blog/263432[/url]今世果接着往下看今晚实践了一把,证实此法可行!代码有些地方要修正,把要hack的代码放在lib/open_active_record_base.rb中:[code="ruby"]m...2008-11-07 00:19:29 · 126 阅读 · 0 评论 -
如何处置增强ActiveRecord::Base的rb文件
现在做一个全文检索的功能,需要在model加上这么一段代码:[code="ruby"]def self.full_text_search(q, options = {}) return nil if q.nil? or q=="" default_options = {:limit => 10, :page => 1} options = defa...2008-11-06 00:21:59 · 170 阅读 · 0 评论 -
Rails分页插件will_paginate
Rails分页插件will_paginate 搜索到的will_paginate的安装方法都是旧的,新的will_paginate已经移到github了 先安装git,可用如下命令安装最新版本的will_paginate插件 script/plugin install git://github.com/mislav/will_paginate.git还提供了gem的方法安装,详情可...2008-10-04 19:48:40 · 265 阅读 · 0 评论 -
acts_as_versioned插件问题及解决
rails上的版本控制acts_as_versioned,请安装plugin版本,gem版本会导致问题,会导致ActiveRecord找不到写入的属性的列表报错信息如下:NoMethodError: You have a nil object when you didn't expect it! You might have expected an instance of Array. ...2008-10-03 03:01:18 · 296 阅读 · 0 评论 -
RESTful&Rails学习笔记(二):资源的划分与命名
RESTful&Rails学习笔记(二) REST风格web编程和传统web编程最大的不同就是HTTP方法的使用(这不是废话吗?地球人都知道啦)。在rails里,资源对应到controller,就是说一个资源对应一个controller(心里YY一下:这样controller的数量岂不是会暴增?),如果你把资源都划分好的话,controller就只有index(GET),new(GE...2008-10-02 01:50:52 · 128 阅读 · 0 评论 -
RESTful&Rails学习笔记(一):令人郁闷的observe_field
最近在学习RESTful,并且使用rails来实践一把。不过今天使用observe_field着实令我郁闷不已。一个用户注册的例子:用户名要求唯一注册时,输入用户名后检查用户名是否唯一,如唯一则继续注册,否则提示用户根据我理解的RESTful,我是如下划分资源的:用户资源:对应UsersController,包含6个经典方法 index,new,create,update,show...2008-10-01 21:27:54 · 173 阅读 · 0 评论 -
Thinking Sphinx + Coreseek + rmmseg的安装与使用
要在Rails上使用全文检索,选择一直不多,以前我一直是使用Ferret + Act_as_ferret + rmmseg的.不过Ferret不支持ruby 1.9,好像也很久没更新了.现在Rails上可用的全文检索又多了一个,那就是Thinking Sphinx . JavaEye的 司徒正美 同学已经写了篇介绍TS的大作,详见利用thinking sphinx实现全文检索 .我只是记录一下我在...2009-10-06 23:48:22 · 179 阅读 · 0 评论 -
使用ri查看Rails的API
我一直都比较习惯直接到 [url]http://www.ruby-doc.org/core/[/url] 查看Ruby的各种API和到[url]http://api.rubyonrails.org/[/url] 查Rails的API.其实安装ruby和rails后,在本机就已经有了这些文档,当然是在安装的时候安装了相应的rdoc的前提下.直接就可以使用 ri 来查看ruby和rails的文...2009-03-25 23:31:24 · 342 阅读 · 0 评论 -
Ubuntu Linux下ruby 1.9.1和Rails 2.3升级记录
安装ruby首先不再使用ubuntu的apt-get安装ruby,自己编译安装,这样虽然不能使用ubuntu系统apt-get的升级功能对ruby进行升级,但胜在自由度最高,想怎么折腾就怎么折腾.到 http://www.ruby-lang.org/zh_CN/downloads/ 下载ruby 1.9.1的源代码.#解压文件...2009-03-22 00:22:24 · 288 阅读 · 0 评论 -
今天收Heroku的邀请
今天收Heroku的邀请,心情大好。Heroku的网址:http:www.heroku.com。 立马搭了个应用在上面(当然是很简单,用来练手的那种啦)。这是一个ruby on rails应用托管的网站,相当于google app engine(python),应用不错,简单到不得了,就是国内访问的话有点慢,而且网站还在开发的,问题还有不少,比如我上传了半天都没有反应该传上去,后来不知道怎...原创 2008-07-20 01:32:04 · 188 阅读 · 0 评论 -
求教rmmseg + ferret设置问题
安装好rmmseg,ferret,acts_as_ferret后,启动rails无法加载rmmseg已经在environment.rb加上了:[code="java"] config.gem 'ferret',:version => '0.11.6' config.gem 'rmmseg',:version => '0.1.6' config.gem 'acts_as...2008-10-05 17:55:17 · 201 阅读 · 0 评论 -
貌似rmmseg + ferret中文分词不是很好
用了一下ruby的中文分词rmmseg + ferret,发现rmmseg的中文分词并不是很好,比如:Hawkins开始了他第一部掌上电脑的设计构想。搜索“掌上电脑”并不能搜索到结果,但是如果把上面这一句改为:Hawkins开始了他第一部 掌上电脑 的设计构想。请注意“掌上电脑”两边的空格,这样的话,rmmseg就可以正确地分词了。对英文的分词倒是很准确的(好像个个全文检索对英文分词都很强...2008-10-05 18:41:27 · 183 阅读 · 0 评论 -
rails路由寻址的先后顺序
在routes.rb中配置了这样的一个资源:[code="java"]map.resources :pages do |page| page.resources :discussions,:collection => {:prequery => :get} do |discussion| discussion.resources :responses en...2008-10-31 00:53:21 · 216 阅读 · 0 评论 -
RESTful&Rails学习笔记(三):在Rails下划分资源的小小经验
Rails支持RESTful,这个地球人都知道.在Rails认为两类的资源足以代表一切:列表和列表中的项.Rails默认的设计就是支持这两种类型的资源.假设已经划分了了一个资源,那么在Rails里面就对应一个controller,model,view,MVC一个都不能少.当然也可以多个controller都使用同一个model,简而言之,就是一个资源对应一个Rails的controller...2008-10-28 15:56:15 · 122 阅读 · 0 评论 -
Rails开发工具之Vim
学习和开发Ruby & Rails已经一年多了.但是正式全职Rails项目的开发只有可怜的4个月经验.这期间我一直使用Netbeans 6.x作为开发工具,到目前为止我依然认为它是开发Ruby & Rails程序的最佳开发工具(我没用过最新出来的RubyMine,另外这是一个付费产品,我也不会付费用它,但也不会用D版). 在网上可以看到很到开发Rails的同学使用Vim这个...2009-10-19 16:06:59 · 214 阅读 · 0 评论 -
对于model是全部放在model下面,还是应该分开包来管理的疑问
ruby和rails的文章看了不少.不过都没有看到过讲述如何在rails下面,按模块来分类model的资料(比如像java那样用包来分类java文件,呵呵 ...我是一个java程序员).我也试了一下把不同功能的model放在model(rails默认的)文件夹下面的子文件夹(模块,也是包),也是可以成功的,不过这样做的话,rails的约定高于配置就用不上了,因为要自己指定各个类的class.比如...2008-03-01 01:18:45 · 670 阅读 · 0 评论 -
请问如何分模块来管理rails里面的model,问题描述请看正文
今天有一个比较郁闷的问题了,就是把model分模块来管理,比如Human::Blog,Content::MyTest,代码如下:[code="java"]blog.rbclass Human::Blog < ActiveRecord::Base #对应日志的内容 include Content set_table_name :human_blogs has_...2008-03-01 01:02:25 · 135 阅读 · 0 评论 -
山寨了一个配合acts_as_ferret使用的will_paginate分页
Rails项目中用上了Ferret分布,全文检索后,发现will_paginate的分页用不上了,于是google ,再配合实际情况,山寨了一个适合自己的版本。参考了这篇文章:[url]http://opensoul.org/2007/8/17/acts_as_ferret-will_paginate[/url]model[code="java"]#全文检索方法 ...2008-10-10 00:44:58 · 145 阅读 · 0 评论 -
如何分辨支持rails unpack操作的gem
你也可以在项目运行时列出正在被使用的 gems:# Listing all gem dependenciesrake gems如果其中有个gem含有文件rails/init.rb 并且你想将它存放在你的项目中,可以用:# Copy the specified gem to vendor/gems/nome_do_gem-x.x.xrake gems:unpack GEM=gem_na...2008-10-08 15:04:09 · 155 阅读 · 0 评论 -
用上了liuqiang大侠分享的Rails在线编辑器,太cools了
用上了liuqiang大侠分享的Rails在线编辑器,太cools了特撰此文,赞一下。地址:[url]http://www.iteye.com/topic/213151[/url]2008-10-08 00:03:47 · 176 阅读 · 0 评论
分享