Rails 3弃用了方法和API

时间:2010-09-05 22:19:48

标签: ruby-on-rails ruby-on-rails-3 upgrade deprecated

在哪里可以找到已弃用的方法,API等列表,以便从Rails 2.x升级到Rails 3?

6 个答案:

答案 0 :(得分:31)

Rails 3 release notes有很多好消息:

Railties现已弃用:

  • RAILS_ROOT支持Rails.root,
  • RAILS_ENV支持Rails.env和
  • RAILS_DEFAULT_LOGGER支持Rails.logger。

的ActionController:

  • cookie_verifier_secret已弃用,现在已分配 通过Rails.application.config.cookie_secret移动到自己的文件中: 配置/初始化/ cookie_verification_secret.rb。
  • 不推荐使用
  • filter_parameter_logging config.filter_parameters<< :密码

ActiveRecord的

  • Active Record类中的named_scope已弃用,并且已重命名为范围。
  • save(false)已弃用,支持save(:validate => false)。
  • 不推荐使用
  • model.errors.on,而推荐使用model.errors []
  • 不推荐使用ActiveRecord :: Base.colorize_logging和config.active_record.colorize_logging,转而使用Rails :: LogSubscriber.colorize_logging或config.colorize_logging

的ActionMailer

  • :charset,:content_type,:mime_version,:implicit_parts_order全部弃用,有利于ActionMailer.default:key =>价值风格宣言。
  • 不推荐使用Mailer dynamic create_method_name和deliver_method_name,只需调用method_name,它现在返回一个Mail :: Message对象。
  • 不推荐使用ActionMailer.deliver(message),只需调用message.deliver。
  • 不推荐使用template_root,通过邮件生成块内的format.mime_type方法将选项传递给proc内的渲染调用
  • 不推荐使用定义实例变量的body方法(body {:ivar => value}),只是直接在方法中声明实例变量,它们将在视图中可用。
  • 不推荐使用app / models中的邮件程序,而是使用app / mailers。

答案 1 :(得分:6)

我认为您不会找到详尽的折旧列表,因为它实际上取决于您要升级的rails的版本。例如,Rails 2.3.9(刚刚发布)在之前的版本中增加了额外的折旧。

Rails Upgrade Handbook(如上所述)是一个很棒的工具,包含12页折旧警告以及如何修复它们。我不认为它们会在这里发布,因为你应该只需9美元并下载pdf即可获得列表。包含的教程和其他信息使它非常值得。这是给我的。

如果您不想支付好的信息,那么只需为您的特定应用运行rails_upgrade plugin即可。有关插件如何在rails upgrade plugin github页面上的更多信息。

答案 2 :(得分:1)

检查单个应用程序细节的一个好方法是在其上运行 rails_upgrade 插件(您可以在GitHub上找到它),它会输出一个弃用通知和建议列表< / p>

此博客文章中还总结了一些有用的信息:http://www.simonecarletti.com/blog/2010/07/the-way-to-rails-3/

此外,Railscasts还有许多关于API各种变化方面的电影。转到 Railscasts.com 并浏览 rails3 标记下提交的电影。

答案 3 :(得分:0)

我发现购买http://www.railsupgradehandbook.com/

非常有价值

答案 4 :(得分:0)

另一个对活动记录进行弃用的地方是(http://m.onkey.org/active-record-query-interface)。

如果发现有用,请回复。

答案 5 :(得分:0)

如何禁用ActiveRecord中的着色日志没有Rails 现在它与Rails框架紧密绑定,而不是保持AR解耦,独立ORM。

将ActiveRecord :: Base.colorize_logging移动到Rails :: LogSubscriber.colorize_logging只是糟糕的设计和错误的方向,不是吗?