1. 创建文件:lib/tasks/rails.rake
desc "Checks your app and gently warns you if you are using deprecated code."
task :deprecated => :environment do
deprecated = {
'@params' => 'Use params[] instead',
'@session' => 'Use session[] instead',
'@flash' => 'Use flash[] instead',
'@request' => 'Use request[] instead',
'@env' => 'Use env[] instead',
'find_all' => 'Use find(:all) instead',
'find_first' => 'Use find(:first) instead',
'render_partial' => 'Use render :partial instead',
'component' => 'Use of components are frowned upon',
'paginate' => 'The default paginator is slow. Writing your own may be faster',
'start_form_tag' => 'Use form_for instead',
'end_form_tag' => 'Use form_for instead',
':post => true' => 'Use :method => :post instead'
}
deprecated.each do |key, warning|
puts '--> ' + key
output = `cd '#{File.expand_path('app', RAILS_ROOT)}' && grep -n --exclude=*.svn* -r '#{key}' *`
unless output =~ /^$/
puts " !! " + warning + " !!"
puts ' ' + '.' * (warning.length + 6)
puts output
else
puts " Clean! Cheers for you!"
end
puts
end
end
2. 执行 #railsapp>rake deprecated
可以查看升级所需要更改的。即使现在不马上升级,到是可以随时注意一些写法。
3.使用插件 willpaginate
# install
#railsapp>ruby /script/plugin install svn://errtheblog.com/svn/plugins/will_paginate
# 替换以前的代码
@skus_pages,@skus = paginate :sku, :conditions => sql , :per_page => 30 ,
rder => "skuid"
替换为:
@skus = Sku.paginate :conditions => sql , :per_page => 30 ,
rder => "skuid",:page=>params["page"]
记得要增加:page=>params["page"],以前是不用的。
可能你会发现@skus_pages不见了,不用担心,它已经集成到了@skus中了
pages.current.previous => objs.previous_page
pages.current_page.number => objs.current_page
pages.current.next => objs.next_page
没有了pages.last , 但是可以考虑使用 objs.page_count
没有了pages.first , 但是可以考虑直接使用 1
willpaginate 多执行了一次统计总记录条数的sql语句,所以可以直接使用objs.total_entries 获取总记录数量。
参考文档:
http://www.slashdotdash.net/articles/2007/12/03/rails-2-upgrade-notes
http://errtheblog.com/posts/56-im-paginating-again
http://www.iteye.com/news/567
分享到:
相关推荐
Rails以其快速的版本迭代和创新的功能而闻名,从1.0到2.0的升级也不例外。这次更新带来了许多新特性,提升了开发效率和用户体验。 首先,Rails 2.0 对RESTful架构进行了深入优化。REST(Representational State ...
Rails的路由系统(routes.rb)将URL映射到控制器的特定动作上,这允许开发者灵活地定义URL结构。通过资源路由,可以轻松实现RESTful操作。 **7. ActiveRecord查询接口** Rails 2.0提供了ActiveRecord查询接口...
### Rails 2.0 的配置方法 #### 一、引言 Rails 2.0作为Ruby on Rails(简称ROR)框架的一个重要版本,在Web开发领域具有不可忽视的地位。本篇将详细介绍Rails 2.0的配置过程及注意事项,帮助初学者快速上手并深入...
这个“ruby on rails2.0本地安装包”适用于Windows和Linux操作系统,特别是针对网络速度较慢的用户设计,方便他们离线安装Rails 2.0.2版本。 在Rails 2.0版本中,有几个关键性的改进和特性: 1. **ActiveRecord**...
- **更加强大的迁移工具**:Rails 2.0对数据库迁移工具进行了升级,使其更加灵活易用,支持更多的数据库操作,比如添加索引、删除列等。 ##### 1.4 固定装置(Fixtures)支持 - **Foxy Fixtures**:Rails 2.0引入了...
《jRuby on Rails WEB2.0》:将Ruby on Rails融入Java平台的实践指南 《jRuby on Rails WEB2.0》是一部由Ola Bini撰写的书籍,深入探讨了如何将Ruby on Rails这一敏捷开源框架与Java平台相结合,以构建高效、灵活的...
在Ruby on Rails 2.0框架下,我们经常会遇到创建和操作数据库的需求。在这个实例中,我们将探讨如何在Rails应用中使用SQLite数据库,一个轻量级且易于上手的数据库管理系统,尤其适合开发阶段。标题提到的“mybook”...
《JRuby on Rails Web 2.0 实用项目》 英文PDF + 源码
Rails 2.0文档也会介绍如何将应用部署到服务器,包括配置Capistrano、 Passenger等部署工具。 10. **国际化(I18n)** Rails 2.0引入了强大的国际化支持,使得应用可以轻松地适应多种语言环境。 通过阅读和查阅...
在Ruby on Rails框架中,`Rails 2.0.2`是一个较早的版本,而分页功能在那个时期并不像现在的Rails应用那样内置在框架内。为了实现分页,开发者通常需要安装并使用第三方插件,比如"will_paginate"。这个插件允许你在...
### JRuby on Rails Web 2.0 Projects:将Ruby on Rails引入Java平台 #### JRuby简介 JRuby是一种Ruby语言的实现,它运行在Java平台上,利用了Java虚拟机(JVM)的强大功能。JRuby使得开发人员能够在Java环境中使用...
书中详细介绍了Rails的路由系统,这是一个关键组件,负责将URL映射到控制器和动作上。理解Rails的路由机制对于构建灵活和可维护的应用程序至关重要。 #### Refactoring to Resources 讨论了如何利用CRUD(Create, ...
### JavaEye2.0_on_rails:敏捷Web开发实践与Ruby on Rails的应用 #### 敏捷软件开发方法 - **背景**:传统软件工程方法在实际应用中面临着项目延期、成本超支以及软件质量不高的问题。为了克服这些挑战,业界提出...