6

我现在正在开发 Rails 3.2 应用程序,但我知道 Rails 4 指日可待。在实现我的应用程序时,我现在应该注意哪些事情,以便在正式​​发布或可能在几个点发布之后更容易迁移到 Rails 4?我知道某些功能将被拆分为 gem,但是不能保证 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。
  • 不要使用插件 - 使用 gems 代替。
  • 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 中的 Eager Evaluated Scope:范围将需要一个 lambda。例如scope :red, -> { where(color: 'red') }不使用scope :red, where(color: 'red')
  • ActiveRecord::SessionStore 现在将是一个单独的 gem ( activerecord-session_store)。
  • 使用 ActiveSupport::Logger 而不是 BufferedLogger。
  • 开始使用strong_parameters gem 来预期 Rails 4 中的强参数。这涉及到将 attr_accessor、attr_accessible 和 attr_protected 放入 ActiveRecord 级别,params.require以强制提供正确的参数。

...但我敢肯定还有更多。谁能提供一份全面但常识性的清单以供注意?我不是在寻找 Rails 4 中弃用的完整列表——这是需要注意的大事,我现在可以做些什么来为它们提供未来证明。

4

0 回答 0