缓解过渡到Rails的痛苦4

mcc*_*nnf 7 ruby-on-rails upgrade future-proof

我现在正在研究Rails 3.2应用程序,但我知道Rails 4即将到来.在实现我的应用程序时,我应该注意哪些事情,以便在正式​​发布或者在几个版本发布之后更容易迁移到Rails 4?我知道一些功能将被分解为宝石,但是在Rails 4.1+中无法保证支持.

我已阅读升级指南:http://edgeguides.rubyonrails.org/upgrading_ruby_on_rails.html#upgrading-from-rails-3-2-to-rails-4-0和发行说明:HTTP:// edgeguides. rubyonrails.org/4_0_release_notes.html.

我对这一点更感兴趣的是找出导致我在升级中头痛的问题,而不是Rails 4的新亮点功能.

所以基于这个阅读和来自互联网的片段,我现在所拥有的是:

  • 至少升级到Ruby 1.9.3.
  • 不要使用插件 - 改用宝石.
  • ActiveRecord :: IdentityMap不会出现在Rails 4中.
  • ActiveResource不会成为核心Rails 4的一部分,但会在一个单独的gem(activeresource)中.可能会考虑REST API的其他ORM.
  • 不要使用动态查找方法中的ActiveRecord喜欢find_all_by_*scoped_by_*因为这些将被弃用.请where改用.
  • 避免User.find(:all, :conditions => ...使用基于散列的查找程序:例如,请使用where.
  • 在ActiveRecord中急切评估范围:范围将需要lambda.例如,scope :red, -> { where(color: 'red') }不要使用scope :red, where(color: 'red').
  • ActiveRecord :: SessionStore现在将是一个单独的gem(activerecord-session_store).
  • 使用ActiveSupport :: Logger而不是BufferedLogger.
  • 在预期Rails 4中的强参数时开始使用strong_parameters gem而不是在ActiveRecord级别的attr_accessor,attr_accessible,attr_protected,这涉及params.require进入控制器以强制提供正确的参数.

......但我相信还有更多.任何人都可以提供一个全面但常识性的清单来了解吗?我不是在寻找Rails 4中的完整折旧列表 - 这是我需要注意的重要事项以及我现在可以做些什么来为他们提供面向未来的证据.