glm*_*ndr 5 coding-style ruby-on-rails upgrade
我是Rails的初学者.我用2.3.X.
我刚看到Rails 3已预发布[ 编辑:现在发布候选人!].我很可能最终会切换到它.
2.3我不应该采取什么常见的编码习惯,以便切换尽可能顺畅?
编辑:
我已完成作业并阅读发行说明.但对于最关键的问题,他们并不清楚,例如:
1.5新API
路由器和查询接口都发生了重大而重大的变化.有一个向后兼容层,它将在3.1版本发布之前得到支持.
对于像我这样的初学者来说,这还不够全面.会破坏什么?我可以在2.3.X中做些什么来避免以后遇到麻烦?
Sim*_*tti 12
看看我的个人编码习惯(我从1.2.x开始就使用Rails),这里列出了根据Rails 3发行说明可以预见的API更改.
找到所有)
避免使用:
Model.find(:all)
Model.find(:first)
Model.find(:last)
Run Code Online (Sandbox Code Playgroud)
支持:
Model.all
Model.first
Model.last
Run Code Online (Sandbox Code Playgroud)
复杂的查询
避免使用复杂查询的组合来支持命名范围.
期待Arel
Rails 3为处理ActiveRecord条件和选项提供了更清晰的方法.您可以预期它会创建自定义命名范围.
class Model
named_scope :limit, lambda { |value| { :limit => value }}
end
# old way
records = Model.all(:limit => 3)
# new way
records = Model.limit(3).all
# you can also take advantage of lazy evaluation
records = Model.limit(3)
# then in your view
records.each { ... }
Run Code Online (Sandbox Code Playgroud)
升级到Rails 3时,只需删除命名的范围定义.
常量
避免使用以下常量来支持Rails.xRails 2.x中已有的相应方法.
RAILS_ROOT 赞成Rails.root,RAILS_ENV 赞成Rails.env,和RAILS_DEFAULT_LOGGER 支持Rails.logger.不引人注目的Javascript
避免使用繁琐的JavaScript帮助程序,而不使用不引人注目的JavaScript.
宝石依赖
保持environment.rb尽可能干净,以便更容易迁移到Bundler.您还可以在没有Rails 3的情况下使用Bundler预测迁移.
| 归档时间: |
|
| 查看次数: |
1347 次 |
| 最近记录: |