我现在正在开发 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 中弃用的完整列表——这是需要注意的大事,我现在可以做些什么来为它们提供未来证明。